日経ソフトウェア 2016年8月
PHP最新版10のポイント
「preg_replaceのe修飾子の廃止」の補足
正規表現の構文
Perl互換正規表現のパターン定義方法
[デリミッター][パターン文字列][デリミッター][パターン修飾子]
パターン文字列)
・任意の文字
・メタ文字
・エスケープシーケンス
・文字クラス(包括的な文字列を含む)
・マッチング位置
などを指定できる。
メタ文字)
「^」:文字列の先頭、もしくは行の先頭
「$」:文字列の末尾、もしくは行の末尾
「,」:改行を除く任意の文字
「?」:(の意味を拡張、0回または1回マッチ、もしくは最短の回数にマッチ
「*」:0回以上の繰返しにマッチ
「+」:1回以上の繰返しにマッチ
「{m}」:m回の繰返しにマッチ
「{m,}」:m回以上の繰返しにマッチ
「{m,n}」m回以上n回以下の繰返しにマッチ
「[]」:文字クラス
「()」:サブパターン
注:若干除いたメタ文字があります。「PHP逆引き大全」を参照しています。
パターン修飾子の例
i:大文字と小文字を区別しない。
m:単一行として処理。
s:.のメタ文字は改行にマッチさせる。
x:空白の文字を無視。
e:PHPコードとして実行(preg_replace関数のみ有効)
・preg_replace関数の使い方
置換結果 = preg_replace (
パターン, 置換文字列, 対象文字列,
[最大置換回数], [置換回数格納変数]);
$0はマッチした文字列全体
$1から$99までの数字をしていした場合は、サブパターンにマッチした文字列を参照
・preg_replace_callback関数の使い方
置換結果 = preg_replace_callback(
パターン, コールバック関数, 対象文字列,
[最大置換回数], [置換回数格納変数]);
・preg_replace_callback関数の
コールバック関数
function 関数名(マッチ文字列配列){
//処理
return 置換結果文字列;
}
以上