Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;(i)";不适用于口音_Java_Regex_Non Ascii Characters_Ignore Case - Fatal编程技术网

Java &引用;(i)";不适用于口音

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; } 除非这个词有重音,否则一切都很完美。例如,如果单词是“阿尔瓦雷

我有一个Java方法,它在短语中查找一个单词,忽略该单词的大小写敏感度,如果它找到了该单词,则会将其从短语中删除。这个词和短语可以是任何东西。它们是变体。这是我的密码:

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:)。。。好精神。