ある文字列を含む行だけを削除する正規表現の覚書
次のようなテキストの場合
————————————–
ここは残す行
ここは削除する行
ここは削除する行
ここは残す行
————————————–
「削除する」というワードが含まれている行をなくしたいので、正規表現は次のようになる
//行頭から改行コードまでを空文字に置き換える
preg_replace(‘/^.*削除する.*[\r\n]/u’,”,$honbun);
これではうまくいかない場合がある。二行目以降の^がマッチしないケース。
次の書き方ならうまくいく。
preg_replace(‘/^.*削除する.*$/um’,”,$honbun);
ポイントは、修飾子m。マルチラインモードにすることで、文章途中の^や$がマッチして期待した動作になる。