我有这个正则表达式:
REGEXP '(^0+|0+)17198671(0+|$)$'
需要匹配这样的字符串
US00171986710
00171986710000000000000
001719867100000000
基本上我需要的是,如果字符串中包含所有相同的数字,则替换零并以零或零结尾,我想匹配它们。我不明白为什么这个有效的正则表达式不适用于MySQL
答案 0 :(得分:1)
MySQL正则表达式引擎不允许使用空的替代项,例如ab(c|)
或a|
中的替代项。 (0+|$)
部分与1+零或输入字符串末尾的空字符串匹配,这会导致错误。
请注意,(^0+|0+)
意味着一个或多个零不必出现在字符串的开头,因此,您所需要的就是
REGEXP '0+171986710*$'
详细信息
0+
-一个或多个0
17198671
-文字子字符串0*
-零个或多个0
$
-字符串的结尾。