【发布时间】:2014-07-27 10:20:14
【问题描述】:
我的正则表达式是这样的:
((?:[a-z][a-z0-9_]*)).*?(\d+).*?((?:[a-z][a-z0-9_]*)).*?(\d+).*?([a-z])
如果我将此作为 MySQL RegExp 的输入,我会收到重复运算符错误。我知道它的发生是因为 ?: 并且我用 ^ 替换了它,我还替换了 * ?用 [^>]* 我替换的正则表达式是这样的:
'((^[a-z][a-z0-9_]*)).[^>]*.(\\d+).[^>]*.((^[a-z][a-z0-9_]*)).[^>]*.(\\d+).[^>]*.([a-z])'
上面的表达式执行没有错误,但是匹配失败并返回错误的结果。所以我想将第一个正则表达式转换为mysql支持的POSIX标准而不丢失约束。
【问题讨论】:
-
MySQL 不支持
.*?惰性量词 -
是的,这就是我用 [^>]* 替换它的原因。
-
仅供参考,添加了有关转换表达式的更改的说明。