首页 > 解决方案 > Java 正则表达式用空格填充感兴趣的模式

问题描述

我希望能够在一个字符串中找到一个感兴趣的模式的多个实例,然后在它的两边用空格填充它。我尝试了一些示例代码,但它没有给出我正在寻找的结果。我的示例代码如下。

在这个例子中,我试图"excerpt":用两边的空白填充图案,即它变成 "excerpt": .


public class RegexTester {

    public static void main(String[] args) {

        String str = "\"date\":1615443360,\"excerpt\":\"A quick brown fox jumps over the lazy dog\"";
        System.out.println(str + "\n\n");
        if(str.contains("\"excerpt\":")) {
            str = str.replaceAll("(.)*\"excerpt\":(.)*", "$0" + " " + "$1" + " " + "$2");
        }
        System.out.println(str);
    }
}

标签: javaregex

解决方案


你几乎在那里:

str = str.replaceAll("(.+)*(\"excerpt\":)(.+)*", "$1" + " " + "$2" + " " + "$3");

但当然一些简单replace("XXX", " XXX ")的事情要容易得多。


推荐阅读