我在名称列中有:
3 boxes of frogs
7 boxes of frogs
48 boxes of frogs
Run Code Online (Sandbox Code Playgroud)
当我执行:
SELECT name FROM items WHERE name REGEXP "[^1-5] boxes"
Run Code Online (Sandbox Code Playgroud)
……结果是:
SELECT name FROM items WHERE name REGEXP "[^1-5] boxes"
Run Code Online (Sandbox Code Playgroud)
当我尝试:
SELECT name FROM items WHERE name REGEXP "[^1-50] boxes"
Run Code Online (Sandbox Code Playgroud)
和
SELECT name FROM items WHERE name REGEXP "[^1-48] boxes"
Run Code Online (Sandbox Code Playgroud)
……结果是:
7 boxes of frogs
48 boxes of frogs
Run Code Online (Sandbox Code Playgroud)
和
SELECT name FROM items WHERE name REGEXP "[^1-50] boxes"
Run Code Online (Sandbox Code Playgroud)
...分别。
为什么“3盒青蛙”不REGEXP "[^1-48] boxes
和其他人一起表演。结果REGEXP "[^1-48] boxes
和REGEXP "[^1-50] boxes
是太奇怪了。有人可以解释为什么吗?
正则表达式不是那样工作的。您不能指定数字范围。
[]
括号指定要匹配的字符集。^
里面的字符[]
意味着否定 = 指定字符集之外的任何内容。我假设您想指示字符串的开头,该字符串也标有^
但在[]
部分之外。
[^1-5] 盒
7 boxes of frogs
匹配,因为 7 不是 1 到 5 之间的数字后跟空格和单词框
48 boxes of frogs
匹配,因为 4 不匹配(常规机器不在第一步中)-> 8 不是 1 和 5 之间的数字后跟空格和实际匹配的单词框: 8 boxes of frogs
[^1-48] 盒
不匹配,48 boxes of frogs
因为规则现在指定了 (1,2,3,4,8) 集中的字符,并且字符串在此检查中失败。
在您的情况下,您可能想使用 name regexp '^[0-9]+ boxes of frog'
归档时间: |
|
查看次数: |
631 次 |
最近记录: |