0
SELECT 
'8 / 10 Valle Seti'
REGEXP
'([1-9][0-9]|[2-9][0-9]) (Valle Seti)'

这在 mysql 中返回 1。这怎么可能?我只指定大于 10 的两位数字,后跟一个单词,但这是匹配一个数字,后跟一个斜线,然后是一个两位数。我在这里错过了什么吗?

4

2 回答 2

3

您的正则表达式匹配

'10 Valle Seti'

'8 / 10 Valle Seti'

要强制正则表达式在字符串结尾处开始和结束,请将其更改为

REGEXP
'^([1-9][0-9]|[2-9][0-9]) (Valle Seti)$'
于 2012-10-09T05:07:00.337 回答
2

因为它在字符串(10 Valle Seti)上找到了匹配项,请尝试添加断言beginningend字符

SELECT 
'8 / 10 Valle Seti'
REGEXP
'(^[1-9][0-9]|[2-9][0-9]) (Valle Seti)$'

请参阅SQLFiddle 演示

于 2012-10-09T05:07:35.750 回答