Java RegEx 是否不区分大小写?

2022-08-31 08:15:35

在Java中,当执行替换All时,要查找正则表达式模式,例如:

replaceAll("\\?i\\b(\\w+)\\b(\\s+\\1)+\\b", "$1"); 

(要删除重复的连续不区分大小写的单词,例如测试测试),我不确定我把.我读到它应该在开头,但是如果我把它拿出来,那么我会捕捉到重复的连续单词(例如测试测试),但不是不区分大小写的单词(例如测试测试)。所以我想我可以在一开始就添加?i,但这似乎没有完成工作。有什么想法吗?谢谢!?i


答案 1

您还可以匹配不区分大小写的正则表达式,并使用Pattern.CASE_INSENSITIVE常量使其更具可读性,如下所示:

Pattern mypattern = Pattern.compile(MYREGEX, Pattern.CASE_INSENSITIVE);
Matcher mymatcher= mypattern.matcher(mystring);

答案 2

RegexBuddy告诉我,如果你想在开头包含它,这是正确的语法:

"(?i)\\b(\\w+)\\b(\\s+\\1)+\\b"