この記事について
| 環境 | mysql、PHP |
|---|---|
| 目的 | 正規表現で括弧()をマッチさせる |
| 結果 | エスケープシーケンスを2つ並べて REGEXP ‘^\\(11\\)’ のように書く |
つまずきポイント要約
- 「\」1つだとMySQLに対するエスケープとみなされる。正規表現用にはもう1つ重ねる
- PHPファイルの中にsql文を書く場合は「\」が4つ並んだりする
mysqlの正規表現で括弧()をマッチさせるには、エスケープシーケンスを連続して記述する。(\\)
下記は 行頭が (11) の文字列にマッチさせる場合。
REGEXP '^\\(11\\)'
エスケープシーケンス(\)が1つの場合はMySQLに対するエスケープとみなされる。
正規表現としてのエスケープするために、2つ並べている。
PHPファイルの中にsql文を記述する場合は、「\」が四つ並んだりする
$sql = "SELECT field FROM table WHERE field REGEXP '^\\\\(11\\\\)'";
