mysqlの正規表現で括弧()をマッチさせる

この記事について

環境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\\\\)'";

関連記事

タイトルとURLをコピーしました