我希望找到一个匹配单词if
的所有组合的正则表达式。所以有效的是:
iF, IF , If and if
我在这里有一个正则表达式:[iIfF]*
虽然它匹配我想要的东西,但它也匹配单词Fi
和其他类似的组合。
我犯了错误?
答案 0 :(得分:6)
由于您似乎在使用Java,因此您需要:
Pattern p = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
答案 1 :(得分:3)
[iI][fF]
括号中的所有内容都将被允许。
编辑 Java允许不区分大小写的RegEx
"(?i)if"
就足够了
答案 2 :(得分:3)
这将匹配iF, IF , If and if
[iI][fF]
答案 3 :(得分:2)
我怀疑你想要这样的东西:
Pattern pat = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
这是使您的模式在Java中不区分大小写的常用方法。
答案 4 :(得分:2)
您可以使用(?i)
标志使正则表达式不区分大小写:
String regex = "(?i)if";
答案 5 :(得分:1)
尝试使用:
/if/i
最后的 i
使得匹配不区分大小写。
抱歉 - 戴上了Perl帽子。您可以使用不区分大小写的模式:
Pattern p = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
或更简洁:
Pattern p = Pattern.compile("(?i)if");
答案 6 :(得分:1)
我知道你要求正则表达式,但为什么不使用像equalsIgnoreCase(String)那样的
boolean b = yourString.equalsIgnoreCase("if");