使用replaceAll()替换字符串中所有出现的字符

时间:2018-10-03 12:39:34

标签: java regex string jenkins replaceall

假设我有以下示例字符串:

String text = "Data/DataFrontEnd/src/pt/data,Data/DataBackEnd/src/pt/groove";

并且我想通过替换过程得到这个字符串:

String textreplaced =  "**/src/pt/data,**/src/pt/groove";

基本上,我想用** /替换所有出现在/ src之前的字符。这可能很棘手,我已经尝试在逗号和/ src文本之间捕获组,但是它没有按我预期的那样工作。

我正在使用replaceAll()方法(wihtin Jenkins)。

有人知道我如何获得它吗?

2 个答案:

答案 0 :(得分:2)

使用positive lookahead

String text = "Data/DataFrontEnd/src/pt/data,Data/DataBackEnd/src/pt/groove";

System.out.println(text.replaceAll("([\\w/]+)(?=/src)", "**")); // **/src/pt/data,**/src/pt/groove

答案 1 :(得分:0)

如果有人想要的话,这是另一种基于非正则表达式的答案:

String textreplaced = "";
String[] split = text.split(",");
for (int i = 0; i < split.length; i++) {
    textreplaced += "**" + split[i].substring(split[i].indexOf("/src"));
    if (i != split.length - 1) {
        textreplaced += ",";
    }
}