気まぐれ----正規表現の構文解析

以前私は仕上げにゴミを捨てないで、いくつかのメモを発見しました。

それは、常に誰も判明しない確かに、見ることが判明していませんでした。

正規表現の構文解析アクション:

テキストモードでのパターンのためのマッチング及び外観は、単純または複雑になることがあります

 

正規表現の練習のウェブサイト:https://www.regexpal.com/

15元の文字:正規表現の文字は特別な意味を持っています

。^ $ * +?|(){} [] \ -

- メタないシーン内の他の文字、文字セットに加えて範囲を示し、

 

1.文字列リテラルのマッチ:

ちょうど合うように特定の書き込みに、例えば、私はOKにマッチしたいのか、それはOK正規表現が何であるかを、一致させたいです

 

2.ユニバーサルセレクタ

(パターン1 | PATTERN2 |パターン3 | ......)選択されたことを示す、いずれかを満たすために行います意味

 

3.反転パターンマッチング:

[^パターン]は試合の模様を満たしていないコンテンツを表し、

 

4.マッチした数字の文字セット:

文字のいわゆるグループは、次のような[]の文字で書かれています。

[0-9] 0,1,2内のテキストに一致するすべての数字を表し、... 9

テキストを表し、【0135】すべての4つの数字と一致し0,1,3,5

 

5.文字のグループセットの操作

[0-3 [6-9] [0-3] U- [6-9]を表します。

[AZ && [^ MR] MRはまたAZ文字とのマッチングを示します

 

6.速記スタイルをバースト:

\ Dは、全ての個々の数値と一致する、[0-9]と等価です

\ Dは、文字のようなスペース、句読点(引用符、ハイフン、スラッシュ、ブラケット)を含む個々の数字以外の文字の全てに一致[^ 0-9]と等価です

\ Wは[_A-ZA-Z0-9]に相当し、それは文字、数字、下線を含むすべての単一ワードの一致を表します

\ Wは、[^ _a-ZA-Z0-9]、\ wは一致であると同等で否定

[\ B]バックスペース文字に一致します

\ Sは、このようなスペース、改行、タブ、キャリッジリターン、ページとして、空白文字の一致を表して...

\ Sは非空白文字の一致を表し、

\ Cは、制御文字と一致します

\ Tは、タブにマッチします

\ Rは、キャリッジリターンと一致します

\ Nは改行にマッチします

[^ \ T \ nは\ r]は空白を除くすべての文字に一致します

 

7.任意の一文字にマッチ:

単一のドットは、任意の単一文字を一致させるために使用されています

 

8.位置識別子ロケータアンカー(アンカー):

^先頭を示すために使用され

$はの終わりを示すために使用され

\ Bはや境界の後に、それはゼロ幅アサーションがある前にスペースまたは表面にラインヘッドにマッチし、単語の境界を示すために使用されるが、実際には存在しないものをゼロ幅の一致です

\ Bは、テキストTTTTとして、ワード境界以外の非ワード境界、非ワード境界マッチング位置と一致し、正規表現は\のBt \ Bのように、中央の2つのTは一致します

 

6.パケットキャプチャ及び後方参照。

()正規表現は、丸括弧部に捕捉され、)それぞれの決定的な順序(あります

\ 1や$ 1がテキストをキャプチャし、正規表現の最初の()コンテンツへの参照であり、第二三〇から四ので、

注:パケットがサポートネストされた、ネストされた基準パケット又は直鎖、フロント大きなパケット、パケットが順次後ろに埋め込まれています

 

9.使用数量

{数値1、数値2}数字のデジタル表現の括弧周波数範囲を探しているように見えます。数字を含む中括弧は数量詞です。このように、\ D {2,5}が一致2-5数字を示しています。{3}表少なくとも3倍、{3}表0-3

?表し?一致する単一の文字または式の前にあるコンテンツ「0または1」

+ +は、一致した単一の前述の文字式または「1つ以上」の内容を示します

* *マッチまたは「0以上」の直前の単一文字式の内容を表示します

 

10.数量詞貪欲、怠惰と所持

貪欲:

貪欲数量詞そのもの。まず貪欲数量詞は、文字列全体にマッチします。あなたが一致しようとすると、それは、全体入力された多くのコンテンツとして選択されます。

数量詞は、最初の文字列全体にマッチしようとすると、それは当時1つの文字を行く失敗した場合、再試行してください。このプロセスは、バックトラック(バックトラック)と呼ばれています。

あなたが一致、あるいは全く文字がこれまでに試行できるコンテンツを見つけるまでは、1つの文字ごとに戻ります。

また、それは、そのリソースの最大を消費する他の二つの方法に比べて、すべての行動を記録します。

レイジー

レイジー(と言っても、時には消極的)別の戦略が使用されている数量詞。それに合わせて、コンテンツを探して、マッチ、各検査、文字列を見つけるための試みの対象の開始位置から開始します。

最後に、文字列全体を一致させようとします。数量詞怠惰になるためには、一般的な数量詞で疑問符を追加する必要があります(?)。少し「食べる」ための時間です。

所持:

数量の所持は、ターゲット全体をカバーして、一致するものを探してみてください、だけ戻って行くことはありません、一度しようとします。

所持の数量詞は、通常の量指定子(+)の後にプラス記号を追加することです。それは不思議の前にいない「咀嚼」が、どのような直接的な「つばめ」を行いyes「を食べます」。

 

11.メタ文字はリテラルを回します

転送:使用\は、通常の単一のメタキャラクタに逃げることができます

\ Qと\ E:\ Qと\ Eの間のすべての文字を通常の文字として扱われます

 

12.正規表現のオプション(オプションのみの後部に作用します)

オプション説明サポートされるプラットフォームの例

Javaで(?D)Unixの行

(?I)に敏感なPCREを小文字されていない、PerlやJavaの(?I)ケースの試合を無視するための手段

(?J)は、重複する名前のPCREを可能にします*

(?M)マルチラインPCREはPerl、Javaの

(?S)シングルライン(DOTALL)PCREはPerl、Javaの

(?で)UnicodeのJavaのPCRE

(?U)デフォルトの最短マッチPCRE

(?X)のスペースとコメントPCREはPerl、Javaのを無視

PCREを閉じる前に開いた(?-X)Xオプション

 

振り返ってみることで、前方13 - 周りを探し

前向きな見通し:リアマッチ2と2つのマッチング要件は、「3」、大文字と小文字を区別しません

(?I)2(?= 3)

アンチプレビュー:いいえマッチ「3」と2つの2リアマッチング要件、大文字と小文字を区別しません

(?I)2(?! 3)

ポジティブHougu:マッチ3前後3つのマッチング要件は、「2」、ケース小文字を区別しません

(?i)から(?<= 2)3

いいえ「2ない」と小文字を区別しないマッチング3つのマッチング要件の前に3:トランスHougu

(?i)から(?<!2)3

 

公開された78元の記事 ウォン称賛19 ビュー20000 +

おすすめ

転載: blog.csdn.net/kxindouhao5491/article/details/104384502