奇怪的是,我似乎找不到任何在MySQL正则表达式方括号内不能安全地用作文字的字符列表而不转义它们或要求使用[:character_class:]
的东西。
(答案可能也需要特定于MySQL,因为与Perl / PHP / Javascript等相比,MySQL正则表达式似乎缺乏。)
答案 0 :(得分:3)
几乎所有元字符(包括点.
,+
,*
和?
量词,字符串结尾锚$
等)在字符类中没有特殊含义,但有一些明显的例外:
]
,原因显而易见^
,用于否定字符类(例如:[^ab]
匹配任何字符但 a
和b
)。 -
,用于表示范围,(例如:[0-9]
匹配任何数字)但是,如果放置在角色类的战略位置,仍然可以添加这些内容:
[]a]
匹配[
或a
。[a^]
匹配^
或a
[-a]
和[a-]
都匹配a
和-
。更多信息可以在POSIX regex
的手册页中找到(感谢Tomalak Geret'kal!)
答案 1 :(得分:0)
从the documentation开始,靠近顶部:
本节总结了一些特殊字符和例子 可以在MySQL中用于REGEXP操作的构造。 确实如此 不包含亨利斯宾塞的所有细节 正则表达式(7)手册页。该手册页包含在MySQL源代码中 分发,在regex目录下的regex.7文件中。
可以找到复制here所述的联合页面(谢谢,Google!)。您正在寻找的信息可以在那里找到。