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