ホームページ >バックエンド開発 >PHPチュートリアル >PHP 正規表現の概要、PHP 正規表現の概要_PHP チュートリアル
1. PHP でよく使用される 2 つの通常関数
Perl 言語に基づく a.preg_match 通常関数
構文: preg_match(モード,文字列サブジェクト,配列一致)
説明: モードパラメータ----通常のモジュール、つまり正規表現(文法)
subject パラメータ----通常のコンテンツ
パラメータに一致します----通常の結果 (配列形式で取得)
b.ereg 通常関数、POSIX (Unix、Script) に基づいています
構文: ereg(mode, string subject, array regs)
2. 正規表現に含まれる要素
a.アトム (一般的な文字: a-z A-Z 0-9、アトム テーブル、エスケープ文字)
b. メタキャラクター (#、* などの特殊な機能を持つ文字)
c. パターン修飾子 (システム i、m、S、U の一部の組み込み文字)
3. 正規表現の「アトム」
a.a-z A-Z _ 0-9 //最も一般的な文字
b.(abc)(skd) //単位記号(全体)を括弧で囲みます
c.[abcs][^abd] //アトムテーブル内の角括弧で囲まれたアトムテーブルは、除外または反対の内容を表します
d. エスケープ文字
d には [0-9] のすべての数字が含まれます
すべての数字を除く D [^0-9]
w にはすべての英字 [a-z A-Z 0-9] が含まれます
W (すべての英字を除く) [^a-z A-Z 0-9]
キャリッジリターン、ラインフィードなど
...
注: 丸括弧は全体として一致する必要がありますが、角括弧はサブセット (コンテンツが存在する) であれば一致できます
4. 正規表現のメタキャラクター
* 前のコンテンツと 0 回一致、または 1 回以上一致
コンテンツの 0 回、1 回以上一致しますが、キャリッジ リターンとライン フィードは含まれません (自分自身や任意のコンテンツを指します)
+ 前のコンテンツを 1 回以上一致させます
? 前のコンテンツと 0 回または 1 回一致します
| 選択の一致は PHP の | に似ています (この操作は弱い型なので、単語の一致と同様に、前方で最も全体的な一致が得られます)
^ 文字列の最初の内容と一致します
$ は文字列の末尾の内容と一致します
b は、スペースまたは特殊文字 (スペースと同様の単語区切り文字を含む) である単語の境界に一致します
B は、単語の境界を除いてコンテンツと一致します (単語の区切り文字はありません)
{m} は、M 回繰り返された前のコンテンツと一致します
{m,} は、前のコンテンツの M 回以上の繰り返し回数に一致します
{m,n} は、前のコンテンツの M 回から N 回の繰り返し回数に一致します
( ) 全体の一致をマージしてメモリに入れます。 \1 \2... を使用して順番に取得できます (メモリに入れられた内容を呼び出します)。
5. 操作の順序
優先度:
( ) 括弧はメモリ内で処理されるため最上位になります
*? + { }
に続く一致するコンテンツを繰り返します
^$b 境界処理第三弾
| 条件付き処理 4 つ目
最後に、操作の順序に従ってマッチングが計算されます
6. モード修飾子
パターン修飾子は、正規表現を拡張および補足する関数であり、正規表現の外で使用されます。例: /正規/U。
よく使用される修飾子:
i 通常のコンテンツはマッチング時に大文字と小文字が区別されません (デフォルトでは大文字と小文字が区別されます)
m は、最初または最後のコンテンツを照合するときに複数行の識別照合を使用します
s は、マッチング時などの単一行マッチングのエスケープ復帰をキャンセルします
x は正規表現の空白を無視します
ゼロから強制的にマッチングします
D は $ を最後に何も一致させません n
U は貪欲なマッチングを禁止し、収集プログラムで一般的に使用される正規表現のみを追跡します。
preg_match_all 一致するすべての関数
構文: preg_match_all (文字列パターン、文字列件名、配列一致 [, int フラグ] )
説明: $matches[0] がすべてのパターン一致の数になるように結果を並べ替えます
preg_replace定期置換関数
構文: preg_replace (混合パターン、混合置換、混合主語 [, int 制限] )
説明: 正規表現を使用して関連コンテンツを置換します。前に学習した str_replace 文字列置換に似ていますが、関数はそれよりも強力です
2. 置換内容は修飾子eを使用して実行内容を置換することで解決できます
目的: より複雑なコンテンツを置き換え、コンテンツの変換にも使用できます
preg_split通常カット
構文: preg_split ( string pattern, string subject [, int limit [, int flags]] )
注: 正規表現を使用して関連コンテンツを切り取ります。前に学習した分解切断機能と同様ですが、分解は一方向でのみ切断でき、制限があります。