私のphp学習ノート(35)PHPの中で正規表現の学習と応用(3)




一、演算順序
左から→右への演算規則に従う
その他の記号の優先度は次のとおりです.
(1)()カッコはメモリ処理なので最高(2)*?+{}繰り返しマッチング内容次に(3)^$b境界処理第3(4)|条件処理第4(5)最後に演算順序でマッチングを計算する
二、モード修正子
モード補正子は、正規表現の強化と補完のための機能であり、正規以外に使用されます.
フォーマット:/正規/U-Uをモード補正子とする
常用修正子
(1)i正則コンテンツはマッチング時に大文字と小文字を区別しない(デフォルトは区別)
のように
$mode = "/[a-z]/";
$str = "B";

一致しませんでした
$mode = "/[a-z]/i";
$str = "B";

マッチ可能
 
(2)m先頭または末尾をマッチングする際に複数行認識マッチングを採用する
のように
$mode = "/^aaa/";
$str = "000
aaa000";

一致しませんでした
$mode = "/^aaa/m";
$str = "000
aaa000";

マッチ可能
(3)Sがエスケープバックをキャンセルするのは、使用するように単行マッチングのためである.*一致する場合、段落全体の内容を一致させることができます.
のように
$mode = "/444(.*)222/";
$str = "444000
333000
22200";

一致しませんでした
$mode = "/444(.*)222/s";
$str = "444000
333000
22200";

マッチング成功
(4)x正則の空白を無視
のように
$mode = "/33 3/";
$str = "44400033300022200";

一致しませんでした
$mode = "/33 3/x";
$str = "44400033300022200";

マッチング成功
(5)A(大文字)強制先頭からマッチング
のように
$mode = "/^333/m";
$str = "444000
33300022200";

マッチング成功
$mode = "/^333/mA";
$str = "444000
33300022200";

一致しませんでした
(6)D強制$照合末尾に何の内容もなく、「」の改行もできない
のように
$mode = "/200$/";
$str = "444000
33300022200
";

マッチング成功
$mode = "/200$/D";
$str = "444000
33300022200
";

一致しませんでした
(7)U貪欲なマッチングを禁止最近のマッチングのみを追跡して終了し,採集プログラムでよく用いられる正規表現
のように
$mode = "/<(.*)>/U";
$str = "pppp<:b>sss</b>ppp";
一致する内容は<:b>
$mode = "/<(.*)>/";
$str = "pppp<:b>sss</b>ppp";
マッチングで得られた内容は<:b>sss