我正尝试在Java中为replaceAll
方法创建一个正则表达式。测试字符串是abXYabcXYZ
,模式是abc
。我想用+
替换除图案以外的任何符号。例如,字符串abXYabcXYZ
和模式[^(abc)]
应返回++++abc+++
,但在我的情况下它返回ab++abc+++
。Java中的正则表达式问题
public static String plusOut(String str, String pattern) {
pattern= "[^("+pattern+")]" + "".toLowerCase();
return str.toLowerCase().replaceAll(pattern, "+");
}
public static void main(String[] args) {
String text = "abXYabcXYZ";
String pattern = "abc";
System.out.println(plusOut(text, pattern));
}
当我尝试替换+
模式是没有问题的 - abXYabcXYZ
与模式(abc)
返回abxy+xyz
。模式(^(abc))
返回没有替换的字符串。
有没有其他的方式来写NOT(正则表达式)或组符号作为一个单词?
很好的解释。 +1 – jensgram 2009-10-23 08:37:38