不思議なことに、MySQL正規表現の角括弧内でリテラルとして安全に使用できない文字のリストを、エスケープしたり、何かを使用したりせずに見つけることができないようです[:character_class:]
。
(また、MySQLの正規表現はPerl / PHP / Javascriptなどの正規表現に比べて不足しているように見えるため、答えはおそらくMySQL固有である必要があります)。
不思議なことに、MySQL正規表現の角括弧内でリテラルとして安全に使用できない文字のリストを、エスケープしたり、何かを使用したりせずに見つけることができないようです[:character_class:]
。
(また、MySQLの正規表現はPerl / PHP / Javascriptなどの正規表現に比べて不足しているように見えるため、答えはおそらくMySQL固有である必要があります)。
ほとんどすべてのメタ文字 (ドット.
、 、+
量*
指定子?
、文字列の終わりアンカー$
などを含む) は、いくつかの注目すべき例外を除いて、文字クラスでは特別な意味を持ちません。
]
明らかな理由から、閉じ括弧^
クラスを否定するために使用されます (例: and以外の任意の文字に[^ab]
一致します)。 a
b
-
範囲を示すために使用されるハイフン(例:[0-9]
任意の数字に一致)ただし、キャラクタークラス内の戦略的な場所に配置されている場合、これらはエスケープせずに追加できます。
[]a]
マッチ]
またはa
.[a^]
マッチ^
またはa
[-a]
でき[a-]
ます。a
-
詳細については、POSIXregex
の man ページを参照してください(Tomalak Geret'kal に感謝します!)。
documentationから、上部のすぐ近く:
このセクションでは、例を挙げて、MySQL で REGEXP 操作に使用できる特殊文字と構造を要約します。Henry Spencer の regex(7) マニュアル ページにあるすべての詳細が含まれているわけではありません。このマニュアル ページは、MySQL ソース配布の regex ディレクトリにある regex.7 ファイルに含まれています。
上記のマンページはここにコピーされています(ありがとう、Google!)。あなたが探している情報はそこにあります。