正規表現を使う時いまだに
サルにもわかる正規表現入門にお世話になってる僕ですが、


今回こんなエラーが出てきました。

Delimiter must not be alphanumeric or backslash in 〜

翻訳に通すと
デリミタ(先頭と末尾の区切り文字)は英数字やバックスラッシュじゃだめだよヽ(`Д´)ノ
ってことらしく、


いつもスラッシュでいいのに何でだろうって思ったら。
今回は置き換え文字にスラッシュを指定してたからだとわかった。


んで更にみると、デリミタはスラッシュじゃなくても()とか{}とかでもいいらしい
ということで

$in_column_path = preg_replace("(/usr/home/.+/html/column/)", "", $array[blog_site_path]);

こんな風に括弧で囲んだ。


もっと言うならば
引用:正規表現とデリミタとエスケープ - 徒書

Perlで正規表現マッチするときには /pattern/ よりも m{pattern} という書き方をよく使います。

らしいPerl互換のだからPHPでもタブンいけるだろう。