MySQL 正则表达式方括号的元字符列表
奇怪的是,我似乎无法在任何地方找到无法在 MySQL 正则表达式方括号内安全地用作文字的字符列表,而无需转义它们或需要使用 [:character_class:]
事物。
(而且答案可能需要特定于 MySQL,因为与 Perl/PHP/Javascript 等中的正则表达式相比,MySQL 似乎缺乏正则表达式)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
几乎所有元字符(包括点
.
、+
、*
和?
量词、结尾 -字符串锚点$
等)在字符类中没有特殊含义,但有一些值得注意的例外:]
,出于明显的原因^
,用于否定字符类(例如:[^ab]
匹配除a
和b
之外的任何字符。-
,用于表示范围(例如:[0-9]
匹配任何数字)但是,如果放置在战略位置,仍然可以添加这些字符而不转义在字符类中:
[]a]
匹配]
或a
。[a^]
匹配^
或a
[-a]
和[a-]
都匹配a
和-
。更多信息可以在 POSIX
的手册页中找到正则表达式
(感谢 Tomalak Geret'kal!)Almost all metacharacters (including the dot
.
, the+
,*
and?
quantifiers, the end-of-string anchor$
, etc.) have no special meaning in character classes, with a few notable exceptions:]
, for obvious reasons^
, which is used to negate the character class (eg:[^ab]
matches any character buta
andb
).-
, which is used to denote a range (eg:[0-9]
matches any digit)However, these can still be added without escaping if placed in strategic locations within the character class:
[]a]
matches]
ora
.[a^]
matches^
ora
[-a]
and[a-]
both matcha
and-
.More information can be found in the man page on POSIX
regex
(thanks Tomalak Geret'kal!)来自 文档,靠近顶部:
可以找到复制的所述联机帮助页 此处(感谢 Google!)。您要查找的信息都可以在那里找到。
From the documentation, right near the top:
Said manpage can be found copied here (thanks, Google!). The information you're looking for is available in there.