模组注意事项:请勿删除/请勿关闭 我之前问过这个问题,管理员关闭了它,因为他们认为这与另一个用户的问题类似。我查看了他们向我推荐的线程,它不包含我遇到的那种数字问题。该线程是如何将整个字符串与正则表达式匹配?
我的疑问/问题: REGEXP 返回误报。
SELECT '123456' REGEXP '[0-9]{1,4}' AS Test;
根据我的阅读,大括号{1,4}部分表示最少出现1次,最多不超过4次。但是从上面来看,[0-9]范围的出现次数较多大于 4,但查询返回 1 而不是 0。我已附上屏幕截图。我缺少什么?谢谢。
Workbench 中示例的屏幕截图
通过“锚定”,您要求匹配整个字符串。由于 4 的限制,上面的操作将会失败。
通过,因为它至少允许位数。
最后两个包括
[^0-9]
,这意味着“除了 0-9 之外的任何数字。详细说明^
^
将处理“锚定”在开头:REGEXP "^x"
表示“以 x 开头”;如果“x”位于字符串中的任意位置,则REGEXP "x"
成功。^
表示“不”:REGEXP "x[0-9]"
查找 x 后紧跟一个数字'REGEXP "x[^0-9]"
查找 x 不紧随其后的数字。