0

我需要在正则表达式 java 中使用正则表达式的帮助。

我需要更改字符串中的组:

例子:

输入:

=sum($var1;2) or =if($result<10;"little";"big") ...

需要输出:

=sum(teste;2) or =if(teste<10;"little";"big") ...

我有的代码:

Pattern p = Pattern.compile("(\\.*)(\\$\\w)(\\.*)");
Matcher m = p.matcher(total);
if (m.find()) {
    System.out.println(m.replaceAll("$2teste"));
}

输出我有:

=sum($vtestear1;2)
=if($r testeesultado<5;"maior";"menor")
4

1 回答 1

1

当您只需要匹配变量标记时,为什么还要匹配所有内容?

Pattern p = Pattern.compile("\\b\\$[a-z0-9]+\\b");
p.matcher(total).replaceAll("teste");

[a-z0-9]如果您可以有多个小写 ASCII 字母和数字,请更改该部分。

此外,如果您:没有匹配意味着什么都不会被替换,则您不需要测试.find()或任何东西。.replace()

于 2013-06-14T11:18:22.597 回答