Java &引用;(i)";不适用于口音
我有一个Java方法,它在短语中查找一个单词,忽略该单词的大小写敏感度,如果它找到了该单词,则会将其从短语中删除。这个词和短语可以是任何东西。它们是变体。这是我的密码:Java &引用;(i)";不适用于口音,java,regex,non-ascii-characters,ignore-case,Java,Regex,Non Ascii Characters,Ignore Case,我有一个Java方法,它在短语中查找一个单词,忽略该单词的大小写敏感度,如果它找到了该单词,则会将其从短语中删除。这个词和短语可以是任何东西。它们是变体。这是我的密码: private String removeWord( String phrase, String word ) { phrase = phrase.replaceAll( "(?i)" + word , "" ); return phrase; } 除非这个词有重音,否则一切都很完美。例如,如果单词是“阿尔瓦雷
private String removeWord( String phrase, String word ) {
phrase = phrase.replaceAll( "(?i)" + word , "" );
return phrase;
}
除非这个词有重音,否则一切都很完美。例如,如果单词是“阿尔瓦雷斯”而短语是“阿尔瓦雷斯短语”,那么它将不起作用,因为在这种情况下“(?i)”不起作用
是否有办法使“(?i)”与重音字符一起工作?默认情况下,(?i)
仅与ASCII字符一起工作-有关详细信息,请参阅。您可以将该标志与UNICODE_大小写组合在一起,如下所示:
phrase = Pattern.compile(word, UNICODE_CASE | CASE_INSENSITIVE).matcher(phrase).replaceAll("");
只需将(?i)替换为(?iu)-它将启用unicode不区分大小写匹配我更喜欢你的。拥有+1:)@Konstantin。。多简单啊。。。谢谢:)@David。。谢谢你,大卫+1用于康斯坦丁溶液+1:)。。。好精神。