MySQL regexp方括号的元字符列表

时间:2011-11-15 18:27:31

标签: mysql regex character-class

奇怪的是,我似乎找不到任何在MySQL正则表达式方括号内不能安全地用作文字的字符列表而不转义它们或要求使用[:character_class:]的东西。

(答案可能也需要特定于MySQL,因为与Perl / PHP / Javascript等相比,MySQL正则表达式似乎缺乏。)

2 个答案:

答案 0 :(得分:3)

几乎所有元字符(包括点.+*?量词,字符串结尾锚$等)在字符类中没有特殊含义,但有一些明显的例外:

  • 结束括号],原因显而易见
  • 插入符^,用于否定字符类(例如:[^ab]匹配任何字符 ab)。
  • 连字符-,用于表示范围,(例如:[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!)。您正在寻找的信息可以在那里找到。