2

単語のすべての組み合わせに一致する正規表現を見つけたいと思いますif。したがって、有効なものは次のとおりです。

iF, IF , If and if

ここに正規表現があります:[iIfF]*

それは私が望むものに一致していますが、単語Fiやその他の組み合わせにも一致しています。

どこで間違いを犯していますか?

4

7 に答える 7

6

Javaを使用しているように見えるので、次のことが必要です。

Pattern p = Pattern.compile("if", Pattern.CASE_INSENSITIVE);
于 2012-10-17T16:02:59.617 に答える
3
[iI][fF]

括弧内のすべての組み合わせが許可されます。

EDIT Java では、大文字と小文字を区別しない RegEx を使用できます

"(?i)if"

十分でしょう

于 2012-10-17T16:00:50.147 に答える
3

これは一致しますiF, IF , If and if

[iI][fF]
于 2012-10-17T16:02:04.730 に答える
2

次のようなものが必要だと思います:

Pattern pat = Pattern.compile("if", Pattern.CASE_INSENSITIVE);

これは、Java でパターンの大文字と小文字を区別しないようにする通常の方法です。

于 2012-10-17T16:03:14.187 に答える
2

(?i)フラグ を使用して、正規表現の大文字と小文字を区別しないようにすることができます。

String regex = "(?i)if";
于 2012-10-17T16:03:34.577 に答える
1

これを使用してみてください:

/if/i

i末尾の により、大文字と小文字が区別されなくなります。

申し訳ありません-Perlの帽子をかぶっていました。大文字と小文字を区別しないパターンを使用できます。

Pattern p = Pattern.compile("if", Pattern.CASE_INSENSITIVE);

または、より簡潔に:

Pattern p = Pattern.compile("(?i)if");
于 2012-10-17T16:01:07.493 に答える
1

あなたが正規表現を要求したことは知っていますが、 equalsIgnoreCase(String)のように使用しないのはなぜですか

boolean b = yourString.equalsIgnoreCase("if");
于 2012-10-17T16:06:16.713 に答える