在java中我需要用一个单词替换一个数字,如果它不在“+”之前。 例如:
- match1
- match+1
应该成为:
matchone
match+1 (no modify)
我试过
>>>name = name.replaceAll("([^+])1", "one");
matcone //required "matchone"
但它不起作用。有什么建议吗?
谢谢
答案 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");