如果没有“+”

时间:2017-09-18 07:55:46

标签: java regex replace

在java中我需要用一个单词替换一个数字,如果它不在“+”之前。 例如:

- match1
- match+1

应该成为:

matchone
match+1 (no modify)

我试过

>>>name = name.replaceAll("([^+])1", "one");
matcone                                      //required "matchone"

但它不起作用。有什么建议吗?

谢谢

2 个答案:

答案 0 :(得分:5)

使用否定的lookbehind:

name = name.replaceAll("(?<!\\+)1", "one");

答案 1 :(得分:1)

你的正则表达式正在吃一个角色,然后用&#34;一个&#34;同样,第一个实例中的输出是&#34; matcone&#34;。

您可以使用负面的后置表达式(?<!)来匹配任何&#34; 1&#34;没有&#34; +&#34;:

之前
name = name.replaceAll("(?<!\\+)1", "one");