正規表現(PCRE 関数)

2022年2月22日

デミリタ、修飾子、メタ文字などを覚えること。メタ文字はエスケープ可能

ereg、mb_eregなどがあるが、これらは非推奨、というか削除された。絶対に使わない事。

[a-e]角カッコの中は文字クラス。abcdeにマッチ
(abc|def)サブパターンは、丸カッコで括られたパターンのこと。abcかdef

超便利名前付きパターン。連想配列で取得可能になる
(?pattern)
この場合$match[‘name’]など

貪欲マッチング。正規表現はできるだけ長いマッチングを試みる
量指定子の後に+か?をつけると貪欲マッチング(+の場合)か非貪欲マッチング(?の場合)になる。

/* first comment */ not comment /* second comment */
これは全てにマッチ
/\*.*\*/
?をつけると短いパターンにマッチ
/\*.*?\*/

正規表現にもコメントや再帰など色々あるけど、そこまで行くとphpに頼ったほうがいい気がする

preg_filterとpreg_replaceの違い。マッチしなかった時に返ってくるか来ないか
$r = preg_filter(“/m/”,”x”,”abcde”);
v($r);
$r = preg_replace(“/m/”,”x”,”abcde”);
v($r);

preg_matchとpreg_match_allの違い。_allナシは最初の一回だけ。_all付きは何度も行う。
$r = preg_match(“/c.*?/”,”ccccc”,$m);
v($m);
$r = preg_match_all(“/c.*?/”,”ccccc”,$m);
v($m);

php,正規表現

Posted by admin8admin