式の意味: (推奨: java ビデオ チュートリアル)
1、文字
xx 文字 x 。たとえば、 a は文字 a
\\ バックスラッシュ文字を表します。書き込む場合は「\\\\」と書きます。 (注: Java は最初の解析中に \\\\ を正規表現 \\ に解析し、2 回目の解析中に \\ に解析するため、1.1 にリストされていないエスケープ文字には 1.1 \\ のエスケープ文字が含まれます。 \ が付いているものは 2 回記述する必要があります)
\0n 8 進値 0 の文字 n (0 \0nn 8 進値 0 の文字 nn (0 \0mnn 8 進値の文字 mnn 値 0 (0 \xhh 文字) 16 進値 0x hh
\uhhaha 16 進値 0x の文字 hhh
\t タブ文字 ('\u0009')
\n 改行 (ライン フィード) 文字('\u000A')
\r キャリッジ リターン文字 ('\u000D')
\ f フォーム フィード文字 ('\u000C')
\a アラーム ( bell) 文字 ('\u0007')
\e エスケープ文字 ('\u001B')
\cx は、文字クラス x
2 の制御文字に対応します
[abc] a、b、または c (単純クラス) たとえば、[egd] は文字 e、g、または d を含むことを意味します。
[^abc] a、b または c を除く任意の文字b、または c (負の値)。たとえば、[^egd] は文字 e、g、または d が含まれていないことを意味します。
[a- zA-Z] a ~ z または A ~ Z (両端を含む)範囲)
[a-d[m-p]] a ~ d または m ~ p: [a-dm-p] (およびセット)
[a-z&&[def]] d, eまたは f (交差)
[a-z&&[^bc]] a から z (b と c を除く): [ad -z] (減算)
[a-z&&[^m-p] ]] m から p ではなく、a から z: [a-lq-z] (減算)
3 、事前定義された文字クラス (バックスラッシュは 2 回書く必要があることに注意してください。たとえば、 \d は次のように書かれます) \\d) 任意の文字 (行末記号に一致する場合も一致しない場合もある)
\d 数値: [0 -9]
\D 数字以外: [^0-9]
\s 空白文字: [ \t\n\x0B\f\r]
\ S 空白以外の文字: [^\s]
\w Word文字: [a-zA-Z_0-9]
\W 単語以外の文字: [^\w]
4.POSIX 文字クラス (US-ASCII のみ) (バックスラッシュは 2 回記述する必要があります。たとえば、\p{Lower} は \\p{Lower})
\p{Lower} 小文字のアルファベット文字: [a-z].
\ と記述されます。 p{Upper} 大文字の英字: [A-Z]
\p{ASCII} すべての ASCII: [\x00-\x7F]
\p{Alpha} 英字: [\p{ Lower}\p{Upper}]
\p{Digit} 10 進数: [0-9]
\p {Alnum} 英数字: [\p{Alpha}\p{数字}]
\p{句読点} 句読点: !"#$%&'()* ,-./:;? @[\]^_`{|}~
\p{Graph} 表示可能な文字: [\p{Alnum}\p{Punct}]
\p{Print} 印刷可能な文字: [\p{Graph}\x20]
\ p{空白} スペースまたはタブ: [ \t]
\p{Cntrl} 制御文字: [\x00- \x1F\x7F]
\p{XDigit} 16 進数: [ 0-9a-fA-F]
\p{Space} 空白文字: [ \t\n \x0B\f\r]
5.java.lang.Character クラス (単純な Java 文字型)
\p{javaLowerCase} は java.lang.Character.isLowerCase( )
\p{javaUpperCase} は java.lang.Character.isUpperCase( )
\p{javaWhitespace} は java.lang.Character.isWhitespace()
と同等です\p{javaMirrored} は java.lang.Character.isMirrored()
# と同等です##6. Unicode ブロックとカテゴリのクラス \p{InGreek} ギリシャ語ブロック (単純ブロック) \p{Lu} 文字 大文字 (単純カテゴリ) \p{Sc} 通貨記号 \P{InGreek} すべての文字、ギリシャ語ブロック (否定) を除く[\p{L}&&[^\p{Lu} ]] 大文字 (マイナス) を除くすべての文字##7. 境界マッチャー
^ 行の先頭では、正規表現の先頭に ^ を使用します。例: ^(abc) は、abc で始まる文字列を表します。コンパイル時にパラメータ MULTILINE を設定する必要があることに注意してください。たとえば、行末の Pattern p = Pattern.compile(regex,Pattern.MULTILINE);
$ です。通常の行末で使用してください。表現。例: (^bca).*(abc$) は、bca で始まり abc で終わる行を意味します。
\b 単語の境界。たとえば、\b(abc) は、単語の先頭または末尾に abc が含まれていることを意味します (abcjj、jjabc は一致します)
\B 非単語境界。たとえば、\B(abc) は、単語の中央に abc が含まれていることを意味します (jjabcjj は一致しますが、jjabc、abcjj は一致しません)
\A 入力の先頭
\G前の試合の終了(個人的にはこのパラメータは役に立たないような気がします)。たとえば、\\Gdog は、前の一致の最後に犬を検索することを意味します。犬がない場合は先頭から検索します。先頭が犬でない場合は一致しないことに注意してください。
\Z 入力の終わり。最終ターミネータ (存在する場合) にのみ使用されます。
行ターミネータは、行の終わりを示す 1 つまたは 2 つの文字のシーケンスです。入力文字列 。
次のコードは行終了文字として認識されます:
-改行 (改行) 文字 ('\n')、
-改行文字が続く改行復帰文字 ("\r\n")、
-単一キャリッジ リターン文字 ('\r')、
-次の行文字 ('\u0085')、
-行区切り文字 ('\u2028') または
-段落区切り文字 ('\u2029)。
\z 入力の終わり
パターンをコンパイルするとき、1 つ以上のフラグを設定できます。たとえば、
Pattern pattern = Pattern.compile(patternString,Pattern.CASE_INSENSITIVE)パターン .UNICODE_CASE);
次の 6 つのフラグがサポートされています:
‐CASE_INSENSITIVE: 文字の一致は大文字と小文字を区別しません。このフラグはデフォルトで US ASCII 文字のみを考慮します。
‐UNICODE_CASE: CASE_INSENSITIVE と組み合わせると、Unicode 文字一致を使用します。
‐MULTILINE: ^ と $ は、入力全体ではなく行の先頭と末尾に一致します
‐UNIX_LINES : 複数行モードで ^ と $ を照合する場合、'\n' のみを行終端記号として扱います
-DOTALL: このフラグを使用すると、. 記号は文字
# を含むすべての行終端記号と照合します##‐CANON_EQ: Unicode 文字の正規相当物を考慮します 8、貪欲な量指定子 XX? X、1 回または 1 回ではない XX* X、0 回以上XX X、1 回以上 XX{n} X、正確に n 回 XX{n,} X、少なくとも n 回 X{n,m} X、少なくとも n 回、ただし m 回以下9.消極的量指定子XX??##X*? X、ゼロ、またはさらに回数
XX ? #X{n,}? X、少なくとも n 回
X{n,m}? ##X? ちょうど n 回
XX {n,} X、少なくとも n 回
XX{n,m} X、少なくとも n 回、ただし m 回以下
貪欲、消極的と独占的の違いは次のとおりです: (あいまい処理を実行する場合のみ注意してください)
貪欲量指定子は、あいまい一致した文字列全体を初めて読み取るため、「貪欲」であると見なされます。最初の一致試行 (入力文字列全体) が失敗した場合、マッチャーは一致した文字列の最後の文字の後の 1 文字を取り除いて再試行し、一致が見つかるか残りの文字がなくなるまでこのプロセスを繰り返します。撤退できる。式で使用される量指定子に応じて、最後に照合しようとするのは 1 文字または 0 文字です。
ただし、消極的量指定子は逆のアプローチをとります。つまり、一致する文字列の先頭から開始し、その後、一度に 1 文字ずつ読み取って一致を検索します。最後に照合しようとするのは、入力文字列全体です。
最後に、所有量指定子は常に入力文字列全体を読み取り、1 つ (そして 1 つだけ) の一致を試みます。貪欲な数量詞とは異なり、所有格は決して後退しません。
11. 論理演算子
XY X の後に、キャプチャ グループとして Y
XX|Y X または Y
(X) X が続きます。たとえば、(abc) は abc 全体をキャプチャすることを意味します
12、後方参照
\n 一致する n 番目のキャプチャ グループ
キャプチャ グループは左から右に渡すことができます。左括弧を番号にします。たとえば、式 ((A)(B(C))) には、そのようなグループが 4 つあります。
1 ((A)(B(C)))
2 \ A
3 (B(C))
4 (C)
対応するグループは、式内の \n によって参照できます (例: (ab) 34\1)。 ab34ab を意味し、(ab)34(cd)\1\2 は ab34cdabcd を意味します。
13. 引用符
\ 何も指定しませんが、次の文字を引用符で囲みます \Q 何も指定しませんが、\E までのすべての文字を引用符で囲みます。 QE 間の文字列は変更されずに使用されます (1.1 のエスケープ文字を除く)。たとえば、ab\\Q{|}\\\\Eは ab{|}\\
\E には一致しませんが、\Q
14 で始まる参照が終了します。 、特別な構造 (非キャプチャ)
(?:X) X、非キャプチャ グループとして
(?idmsux-idmsux) 何もありませんが、一致フラグをオンからオフに変更します。 。例: (?i)abc(?-i)def という式 このとき、(?i) は大文字と小文字を区別しないスイッチをオンにし、abc は
idmsux に一致します。 説明は次のとおりです。
‐i CASE_INSENSITIVE :US-ASCII 文字セットは大文字と小文字を区別しません。 (?i)
‐m MULTILINE: 複数行モード (?m)
UNIX 改行\n
WINDOWS 切り替え動作\r\n(?s)
‐u UNICODE_CASE: Unicode では大文字と小文字が区別されません。 (?u)
‐x コメント: パターン内でコメントを使用でき、パターン内の空白を無視し、最後まで「#」を使用できます (# の後にコメントが続きます)。 (?x) たとえば、(?x)abc#asfsdadsa は、指定されたフラグをオンまたはオフにして、文字列 abc
(?idmsux-idmsux:X) X を非キャプチャ グループとして照合できます。上記と同様に、上の式は次のように書き直すことができます: (?i:abc)def、または (?i)abc(?-i:def)
(?=X) X、ゼロを通過正の先読みの幅。幅ゼロの正の先読みアサーションは、部分式 X がこの位置の右側に一致する場合にのみ一致を継続します。たとえば、\w (?=\d) は文字の後に数字が続くことを意味しますが、ゼロ幅の負の先読みによって数字 (バックトラッキングなし)
(?!X) X はキャプチャされません。幅ゼロの否定先読みアサーション。部分式 X がこの位置の右側に一致しない場合にのみ、一致を続けます。たとえば、\w (?!\d) は、文字の後に数字が続かず、数字がキャプチャされないことを意味します。
(? (? (?>X) X、独立した非キャプチャグループとして (バックトラッキングなし)
(?=X) と (?>X) の違いis ( ?> >b|bc) は、後者が b と一致する場合、すでに一致しているため、非キャプチャ グループから飛び出し、グループ内の文字と再度一致しないため、一致することはできません。
Java の詳細については、
Java 基本チュートリアル列に注目してください。
以上がJavaの常備知識を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。