MySQL 正则表达式

Posted

技术标签:

【中文标题】MySQL 正则表达式【英文标题】:MySQL regular expression 【发布时间】:2011-06-27 15:02:47 【问题描述】:

请建议更改正则表达式 '^(0,10,1)0,1[7-9][0-9]0,10,10,1[0-9]1[0-9]7$' 以与 mysql 语句一起使用。 这个表达式使用 Java 完美,但使用 MySQL 失败。该模式是匹配一个以 [7-9] 开头的 10 位数字。

我执行了 MySQL 语句:

select '11' REGEXP '^(0,10,1)0,1[7-9][0-9]0,10,10,1[0-9]1[0-9]7$'

但它返回以下错误:

ERROR 1139 (42000): 从正则表达式中得到错误“重复操作符操作数无效”

【问题讨论】:

【参考方案1】:

'[7-9]\d9',也许吧?

编辑:等等,不,我猜 \d 在 MySQL 正则表达式中无效,所以 '^[7-9][[:digit:]]9$'

开头的 (0,10,1)0,1 位究竟是什么意思?

【讨论】:

以上是关于MySQL 正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

MySQL正则表达式

MySQL正则表达式问题

mysql支不支持正则表达式里的零宽断言

MySQL正则表达式匹配

MySQL 正则表达式

MySQL中REGEXP正则表达式使用大全