web-dev-qa-db-ja.com

Java regex.Patternに2つのフラグを設定します

私はこのようなマッチャーが必要です:

Matcher kuchen = Pattern.compile("gibt es Kuchen in der K\u00FCche",Pattern.CASE_INSENSITIVE).matcher("");

そして問題は単純なASCIIではないということです。この特定のケースでは、üに[\ u00FC\u00DC]を使用できることはわかっていますが、もう少し一般的である必要があります(他のマッチャーグループから正規表現を構築する)。したがって javadocs によると:

デフォルトでは、大文字と小文字を区別しないマッチングでは、US-ASCII文字セットの文字のみがマッチングされると想定されています。 Unicode対応の大文字と小文字を区別しないマッチングは、このフラグと一緒にUNICODE_CASEフラグを指定することで有効にできます。

2つのフラグを組み合わせて指定する方法を誰かに教えてもらえますか?

28
davide

試す

Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE

それは問題を解決するはずです。ビットマスクを使用すると、複合機能が得られます。

39
Roman C

より純粋なパラメーターを使用していますが、パラメーターなしの"(?iu)gibt es ..."と同じです。 i =大文字と小文字を区別しない、u = unicode。

13
Joop Eggen

Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASEのように、ビットごとのORを使用します。

7
barfuin

これはビットマスクなので、ビットごとにOR operator |

6
Sebastian Redl