在Java中应用此正则表达式

时间:2012-11-30 18:54:30

标签: java regex regex-negation

我写了这个精彩的正则表达式,我能够实现这个:

s/(?:[aeiou\u00E4\u00E4\u00F6\u00D6\u00FC\u00DC])h//ig

在perl中,但我似乎是迟钝将其应用于我的Java代码中。我尝试了以下内容:

bar.replaceAll("?:[aeiou\u00E4\u00E4\u00F6\u00D6\u00FC\u00DC])h", "");

但我似乎缺少一些特别的东西。

因此,我的问题非常明显:如何将此正则表达式应用于Java中的字符串?

1 个答案:

答案 0 :(得分:5)

不要忘记在Java字符串中加倍反斜杠:

bar.replaceAll("(?i)[aeiou\\u00E4\\u00E4\\u00F6\\u00D6\\u00FC\\u00DC]h", "");

开头的(?i)会替换/i不区分大小写的修饰符。

如果您想保留元音并仅删除h,请使用lookbehind assertion

bar.replaceAll("(?i)(?<=[aeiou\\u00E4\\u00E4\\u00F6\\u00D6\\u00FC\\u00DC])h", "");