単語のすべての組み合わせに一致する正規表現を見つけたいと思いますif
。したがって、有効なものは次のとおりです。
iF, IF , If and if
ここに正規表現があります:[iIfF]*
それは私が望むものに一致していますが、単語Fi
やその他の組み合わせにも一致しています。
どこで間違いを犯していますか?
Javaを使用しているように見えるので、次のことが必要です。
Pattern p = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
[iI][fF]
括弧内のすべての組み合わせが許可されます。
EDIT Java では、大文字と小文字を区別しない RegEx を使用できます
"(?i)if"
十分でしょう
これは一致しますiF, IF , If and if
[iI][fF]
次のようなものが必要だと思います:
Pattern pat = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
これは、Java でパターンの大文字と小文字を区別しないようにする通常の方法です。
(?i)
フラグ を使用して、正規表現の大文字と小文字を区別しないようにすることができます。
String regex = "(?i)if";
これを使用してみてください:
/if/i
i
末尾の により、大文字と小文字が区別されなくなります。
申し訳ありません-Perlの帽子をかぶっていました。大文字と小文字を区別しないパターンを使用できます。
Pattern p = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
または、より簡潔に:
Pattern p = Pattern.compile("(?i)if");
あなたが正規表現を要求したことは知っていますが、 equalsIgnoreCase(String)のように使用しないのはなぜですか
boolean b = yourString.equalsIgnoreCase("if");