Java中使用正则表达式无法替换字符串问题求助
解决方案
- 核心思路:用正则表达式的捕获组匹配目标模式,将等号后的数字替换为
$加对应的test前缀。 - 正确代码示例:
String original = "abc test=0 test1=123 test2=764"; String result = original.replaceAll("(test\\d*)=\\d+", "$1=$$$1"); System.out.println(result);
代码说明:
- 正则
(test\\d*)=\\d+:(test\\d*):捕获组1,匹配test开头,后面可跟0个或多个数字,覆盖test、test1、test2这类场景=\\d+:匹配等号后的1个或多个数字
- 替换串
$1=$$$1:$1:引用捕获组1的内容(比如test或test1)$$:Java中replaceAll里$是特殊字符,需用$$表示真实的$符号- 最终组合出
test=$test、test1=$test1的格式
- 正则
你的尝试无效原因:
test%:匹配的是test后紧跟%,原字符串无此模式,无法匹配test[.*]:[.*]是字符集,仅匹配test后接.或*,和需求不匹配
内容的提问来源于stack exchange,提问作者umesh
相关产品推荐
相关产品推荐

