こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PHPコメントアウト

/*
これで複数行コメントアウト
できますが、
*/


/*
$hoge = preg_replace("/[0-9]*/","",$str);
*/

こいつの正規表現部分でコメント行が止まるんです。

個別に // でその行コメントアウトすれば良いんですが、なんか悔しいので方法無いかなと思いまして。

投稿日時 - 2017-03-30 15:57:32

QNo.9311182

暇なときに回答ください

質問者が選んだベストアンサー

/*
$hoge = preg_replace("/[0-9]*/","",$str);
*/
  ↓
/*
$hoge = preg_replace('#[0-9]*#','',$str);
*/

…一応、コレで通ります。

正規表現のためのパターン文字列は通常、/ で囲いますが必ず / で無ければならない訳でも無く。両側に同じ記号文字が対応していれば、「/、#、<>、|」などでもOKです。

特にURLなどを判別する場合はどうしてもパターン文字列内に / が含まれる事を避ける事が不可避になるため、その部分を1つ1つ ¥/ などとエスケープ処理していたら全体的にコードが煩雑になるため。場合に応じて使い分ける事が出来る様、正規表現の仕様自体が柔軟に出来ています。

同じく正規表現のパターン文字列などに ?> が含まれると、そこでPHP構文自体の終端を意味してしまうため、予期せぬ不具合が発生する事があります。この場合は ?¥> などの様に意味を変化させないエスケープ処理をして回避します。

投稿日時 - 2017-03-30 17:28:44

お礼

ありがとうございました。勉強なります

投稿日時 - 2017-03-30 19:49:55

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

正規表現の中に「*/」があるので無理ですね。
コメント内なのでダブルコーテーションに囲まれた中の文字列だと言う判断をしてくれません。

投稿日時 - 2017-03-30 16:10:17

お礼

ありがとうございました

投稿日時 - 2017-03-30 19:50:09

あなたにオススメの質問