MysQL使用亨利·斯宾塞(Henry Spencer)实施正则表达式,该表达式旨在符合POSIX 1003.2。 MySQL使用扩展版本来支持SQL语句中的正则表达式模式匹配操作。
\w
\d
(?:
Pattern
类来验证正则正则是有效的:Pattern.compile(regex);
如果正则表达式无效,则返回例外。但是,正如我说的那样,我正在尝试验证正则态度是否仅兼容POSIX,因此我可以在保存数据库中的信息之前验证REGEX输入。
\w
\d
,
(?:)
,在与Perl兼容的正则表达式(PCRE)中支持,而不是在Posix中。诸如egrep
支持增强功能的工具可以兼容,但这并不能使它们成为posix。
从人页面for rre_format(7)
:增强功能
当reg_enhanced标志传递给regcomp()变体之一时,激活了其他功能。 就像佩尔(1)和python(1)等脚本语言中增强的正则实现一样,这些附加功能可能与IEEE STD 1003.2(``posix.2')标准相冲突。在需要便携性的情况下,请在需要谨慎的情况下(包括使用先前的正则实现的Mac OS X的过去版本)。
在“扩展”和“增强”之间有一个区别。扩展是指POSIX正则表达特征的水平。增强是指PCRE支持但不支持Posix的语法。 您可以在Posix语法中做许多您想要的事情:
\w
,使用[[:alnum:]_]
。
,使用
\d
。
[[:digit:]]
语法是不必要的,因为MySQL
(?:)
无论如何都不支持捕获组。您可以简单地将
REGEXP
我不认为有必要使用Java验证器来解析您的正则表达式。您应该能够阅读文档,并仅使用该文档中出现的功能。
我的意思是,正式表达语法不是那么复杂。您可以在邮政注释上创建快速引用表。