在java正则表达式中,使用[^x]
将“not”与一个char匹配。
我想知道,如何匹配更多的字符?
我使用[^789]
,这是不对的。
String text="aa(123)bb(456)cc(789)dd(78)";
text=text.replaceAll("\\([^789].*?\\)","");
System.out.println(text);
我想得到的结果是:
aabbcc(789)dd
如何修复我的正则表达式?
非常感谢:)。
答案 0 :(得分:7)
您可以使用negative lookahead:
"\\((?!789\\)).*?\\)"
说明:
\\( Match a literal open parenthesis "(" (?! Start negative lookahead 789\\) Match literal "789)" ) End lookahead .*? Match any characters (non-greedy) \\) Match a literal close parenthesis ")"
如果负前瞻内部的模式匹配,那么负前瞻不匹配。