質問: 正規表現での最後尾のバックスラッシュの扱いについて 使用しているsqlテーブルで、フィールド名siteurlに格納しているurlの最後尾にスラッシュがついているものとついていないものがあるので、つけるように統一しようと思います。 phpを書き、実行したところ、次のようなエラーが出てきました。 warning: preg_match() [function.preg-match]: no ending delimiter '/' found in c:\xampp\htdocs\sql_open.php on line 42 この部分のコードは次の通りです。 if(!preg_match("\/$",$row["siteurl"])){ //行末がスラッシュでないならスラッシュを追加する $row["siteurl"].="/"; } エラーの内容を考えて、コードを以下のように修正したところ、 if(!preg_match("\/$",$row["siteurl"])){ //行末がスラッシュでないならスラッシュを追加する $row["siteurl"].="/"; } というエラーが出てきます。 preg_match() [function.preg-match]: delimiter must not be alphanumeric or backslash in c:\xampp\htdocs\sql_open.php on line 42 正規表現はあまり得意ではなく、どこかしら間違いがあったのかもしれませんが自分ではわかりません。 この問題の解決方法をご教示ください。どなたかご教示のほど、どうかよろしくお願いします。
回答: http://www.php.net/manual/ja/reference.pcre.pattern.syntax.php pcreで使えるパターンの書き方をよく読みなおしましょう。 特に「デリミタ」のところ。 http://www.php.net/manual/ja/regexp.reference.delimiters.php エラーも > no ending delimiter 終了のデリミタが無い > delimiter must not be alphanumeric or backslash デリミタはアルファベットやバックスラッシュであってはならない と出てます。