PHPで正規表現を使って文字列を置換する
PHPで正規表現と一致した箇所を置換する方法です。今回は$content
に含まれる<h2>
タグの前に文字列("Add")を追加するサンプルになります。
$h2 = '/<h2.*?>/i'; // <h2>タグ
最初に見つかった1回だけ置換する方法
preg_match_all() を使う
preg_match_all( $h2, $content, $matches, PREG_SET_ORDER );
if ( count( $matches ) >= 1 ) {
$content = preg_replace( $h2, 'Add' . $matches[0][0], $content, 1 );
}
preg_match() を使う
if ( preg_match( $h2, $content, $matches ) === 1 ) {
$content = preg_replace( $h2, 'Add' . $matches[0], $content, 1 );
}
全て置換する方法
$content = preg_replace_callback( $h2, function ( $matches ) {
return 'Add' . $matches[0];
}, $content );
preg_replace_callback()
の第4引数に数値を指定すると最大置換回数を指定できます。(デフォルトは-1
で全て置換)