无法使用regex在java中将字符串替换为另一个字符串

p8ekf7hl  于 2022-12-21  发布在  Java
关注(0)|答案(3)|浏览(139)

我有一个字符串,想替换其中的某些字符。输入String = "abc test=0 test1=123 test2=764"输出String = "abc test=$test test1=$test1 test2=$test2"
我尝试过在java中使用replace和replaceAll做一些事情,例如:

String abc = directiveValue.replaceAll("test%", test+"=$"+test);

String abc = directiveValue.replaceAll("test[.*]", test+"=$"+test);
iswrvxsc

iswrvxsc1#

您可以匹配:

(test\d*)=\S*

Regex demo
并在两个捕获组$1=\$$1之间替换为美元符号

System.out.println(
    "abc test=0 test1=123 test2=764"
        .replaceAll(
          "(test\\d*)=\\S*",
          "$1=\\$$1"
        )
);

产出

abc test=$test test1=$test1 test2=$test2
wqlqzqxt

wqlqzqxt2#

我们可以使用正则表达式替换:

String input = "abc test=0 test1=123 test2=764";
String output = input.replaceAll("(\\w+)=\\w+", "$1=\\$$1");
System.out.println(output);

// abc test=$test test1=$test1 test2=$test2
xuo3flqw

xuo3flqw3#

使用VScode时,我将使用(test)(\d?)(=)(\b.+?\b)
并替换为$1$2$3$test$2
我希望它能对你的Java实现有所启发

相关问题