1

我写了这个美妙的正则表达式,我能够实现它:

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

在 perl 中,但是我似乎很难将它应用到我的 Java 代码中。我尝试了以下方法:

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

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

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

4

1 回答 1

5

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

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

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

如果您想保留元音并只删除h,请使用后向断言

bar.replaceAll("(?i)(?<=[aeiou\\u00E4\\u00E4\\u00F6\\u00D6\\u00FC\\u00DC])h", "");
于 2012-11-30T18:58:55.967 回答