我写了这个精彩的正则表达式,我能够实现这个:
s/(?:[aeiou\u00E4\u00E4\u00F6\u00D6\u00FC\u00DC])h//ig
在perl中,但我似乎是迟钝将其应用于我的Java代码中。我尝试了以下内容:
bar.replaceAll("?:[aeiou\u00E4\u00E4\u00F6\u00D6\u00FC\u00DC])h", "");
但我似乎缺少一些特别的东西。
因此,我的问题非常明显:如何将此正则表达式应用于Java中的字符串?
答案 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", "");