"(?i)"不适用于重音符号

Bra*_*rad 12 java regex ignore-case non-ascii-characters

我有一个Java方法,在一个短语中查找单词,忽略单词的区分大小写,如果找到单词,则将其从短语中删除.这个词和短语可以是任何东西.他们是变种.这是我的代码:

private String removeWord( String phrase, String word ) {
    phrase = phrase.replaceAll( "(?i)" + word , "" );
    return phrase;
}
Run Code Online (Sandbox Code Playgroud)

事情很完美,除非这个词有重音.例如,如果单词是" álvarez "并且短语是" Álvarez短语 ",那么它将不起作用,因为"(?i)"在这种情况下无效.

有没有办法让"(?i)"与重音字符一起使用?

Kon*_*hov 25

只需用(?iu)替换(?i) - 它将打开unicode不区分大小写的匹配

  • 我比你更喜欢你的.有一个+1 :) (4认同)