chr*_*s85 1 regex mysql escaping
我尝试运行此查询:
SELECT column FROM table WHERE column REGEXP '[^A-Za-z\-\']'
Run Code Online (Sandbox Code Playgroud)
但这又回来了
#1139-从regexp得到错误“无效字符范围”
在我看来,-字符类中的不会被转义,而是被视为无效范围。是否还有其他方式可以逃脱mysql作为文字-?
此regex可以在mysql外部https://regex101.com/r/wE8vY5/1正常工作。
我想出了该正则表达式的替代方法
SELECT column FROM table WHERE column NOT REGEXP '([:alpha:]|-|\')'
Run Code Online (Sandbox Code Playgroud)
所以问题不在于我该如何工作。问题是为什么第一个正则表达式不起作用?
这是问题的SQL提琴,http: //sqlfiddle.com/#!9/f8a006/1 。
另外,这里没有使用任何语言,查询是在数据库级别运行的。
PHP中的正则表达式:http://sandbox.onlinephpfunctions.com/code/10f5fe2939bdbbbebcc986c171a97c0d63d06e55
JS中的正则表达式:https://jsfiddle.net/6ay4zmrb/
只需更改顺序即可。
SELECT column FROM table WHERE column REGEXP '[^-A-Za-z\']'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |