正規表現は、
正規表現の強さを1とでしょうか?
強力かつ柔軟なテキスト処理ツール、
ほとんどのプログラミング言語、データベース、テキストエディタでは、開発環境では、正規表現をサポートしています。
2.正規表現定義された:
彼の名は原則として記載されているように、この規則により文字列クラスを一致させることができます。
3.正規表現の構文
(1)通常の文字の
文字、数字、文字、アンダースコア、および句読点の特別な定義は、「普通の文字」です。式通常の文字、同じ文字とマッチマッチする文字列。
(2)簡単なエスケープ文字
\ nは | 改行文字を表します |
\トン | タブ |
\\ | 自身\代表 |
\ ^、\ $、\。、\(、\)、\ {、\}、\?、\ +、\ *、\ | 、\ [、\] | これらの文字そのものにマッチ |
(3)文字の標準セットを
大文字と小文字を区別し、大文字と反対の意味
\ dは | いずれに0〜9の数のいずれか |
\ワット | 任意の文字または数字または下線、すなわち、A〜Z、〜zを、0〜9、_いずれか |
\ sの | 空白のいずれかにスペース、タブ、改行文字を含みます |
。 | 小数点は通常、[\ S \ S]との「\ n」は、すべての文字を含む、一致させるには(改行を除く)任意の文字を一致させることができます |
(4)文字のカスタムセットを
[]大カッコが一致し、カッコ内の任意の1つの文字にマッチすることが可能です
正規表現は、括弧内に含まれている、特別なシンボルであり、特別な意味は、^を除いて、失われた-外。
文字の標準セットには、小数点に加えて、括弧カスタム文字セットに含まれている場合はセットを含みます。例:[。\ D \ - + ] マッチします:数、小数点、+、 -
[AB5 @] | マッチ「A」又は「B」または「5」または「!」 |
[^ ABC] | マッチ「A」以外の任意の文字、「B」、「C」 |
[FK] | 「F」〜「K」の文字の間の任意のマッチング |
[^ A-F0-3] | "0" 〜 "3"、 "A" 〜 "F" 以外の任意の文字に一致します |
(5)分類子:特殊記号の数と一致するように修正されます
貪欲での一致数(一致する文字良く、デフォルトでは!)
(「?」記号を追加し、その後変更や特殊記号の数に一致する、可能な限り一致する文字)非貪欲の数と一致
{N} | 式はn回繰り返さ |
{M、N} | 発現は、少なくともm回繰り返し、n回まで |
{M} | 発現は、少なくともメートル繰り返しました |
? | {0,1}に対応する、式ゼロ又は1と一致 |
+ | 1つの発現は、{1}と少なくとも同等の表示します |
* | 式が発生した場合、または、{0}に対応する、任意の回数発生していません |
(6)文字境界
^ | どこに文字列マッチングを開始します |
$ | 文字列の場所の試合終了 |
\ B | 単語の境界にマッチします |
正規表現パターンマッチング:
- IGNORECASEはケースモードを無視します
一致する場合を無視します。
デフォルトでは、正規表現は、大文字と小文字を区別することです。
- 単一行シングルラインモード
文字列としてテキスト全体、ほんの始まり、エンディング。
小数点。「」マッチは任意の文字を含め、改行(\ n)を含めることができます。
- MULTILINE複数行モード
各行は、開始と終了を持っている文字列です。
専用の文字列の開始と終了位置と一致した場合にMULTILINEを指定した後、あなたは、\ Aと\ Zを使用することができます
(7)選択し、グループ化
表現 | 効果 |
|分岐構造 | 左または右に一致する左右の発現との間に「OR」の関係、 |
()キャプチャグループ | 番号は括弧内の式は、全体として修正することができると一致するように変更された場合(1)。 (2)に一致する結果を取る場合、括弧内の式は、別々に得ることができるコンテンツに適合される (3)。各括弧の対は、左括弧からキャプチャのシーケンスに従って(1)を使用して、番号を割り当て 、自動番号付けを開始します。第一の捕捉要素番号ゼロを捕捉すること全体の正規表現パターンである テキストに一致します |
(?:式)非キャプチャグループ | いくつかの式は、()を使用する必要があるが、(保存する必要はありません)中性子表現マッチング )(あなたが使用することによって引き起こされる副作用を相殺するために、非キャプチャグループを使用することができ、との内容。 |
後方参照(\ NNN):
各ペア()は自動的に左括弧の順番に1から番号キャプチャ()を使用して、番号を割り当てます。
これは、逆参照によってキャプチャされたパケットの文字列への参照であってもよいです。
(8)プレサーチ(ゼロ幅アサーション)
唯一のサブ表現、最終一致結果に含まれないマッチングコンテンツがあった、ゼロ幅
この位置では、一定の基準を満たすべきです。文字の前と後の現在位置を決定し、それが指定された基準を満たしているが、前と後の文字と一致していません。それは場所にマッチしています。
サブ式ではなく位置よりも文字の内容と一致し、最終的な一致結果を保存する場合、正規表現マッチング処理は、このサブ表現は、文字の所持で検討;部分式マッチングなら唯一の場所、またはコンテンツの一致が試合の最終結果に保存されていない、我々は、サブ表現のゼロ幅を考慮してください。所持またはゼロ幅文字は、マッチングの面で最終結果を保存するかどうかの内容と照合されます。
(?= EXP) | その後、自分自身を主張式expの位置に一致するように見えます |
(?<= EXP) | 場所の前に現れた自分自身を主張することは、式expを一致させることができます |
(?!EXP) | この主張の背後に式expの位置と一致していません |
(?<!EXP) | この主張は、前の式expの位置と一致していません |
正規表現の4共通リスト
中国語の文字をマッチング | [\ u4e00- \ u9fa5] |
空白行をマッチング | \ nは\ sの*の\ rを |
匹配HTML标记 | <(\S*?)[^>]*>.*?</\1>|<.*? /> |
匹配首尾空白字符 | ^\s*|\s*$ |
匹配Email地址 | \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* |
匹配网址URL | [a-zA-z]+://[^\s]* |
匹配国内电话号码 | \d{3}-\d{8}|\d{4}-\d{7} |
匹配腾讯QQ号 | [1-9][0-9]{4,} |
匹配中国邮政编码 | [1-9]\d{5}(?!\d) |
匹配身份证 | \d{15}|\d{18} |
匹配ip地址 | \d+\.\d+\.\d+\.\d+ |
5.Java程序中使用正则表达式