繁体   English   中英

无法使用正则表达式在java中用另一个字符串替换一个字符串

[英]Unable to replace a string with another string in java using regex

我有一个字符串,想替换其中的某些字符。 输入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);

你可以匹配:

(test\d*)=\S*

正则表达式演示

并替换为 2 个捕获组$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

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

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

使用 VScode,我将使用这个(test)(\d?)(=)(\b.+?\b)
并替换为$1$2$3$test$2

我希望它对您的 Java 实现有所启发。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM