在REGEX mySQL查询中使用 -

时间:2016-01-16 11:06:25

标签: mysql regex

我正在尝试在 mySQL 中创建一个查询,以便我可以匹配:

a-z
0-9
_ 
-
.
/

到目前为止,我有:

UPDATE Errors SET been_checked = 1 WHERE binary(request) REGEXP "^[a-z0-9_./]+$" AND been_checked = 0

这样可行,但我没有 - 作为其中一个角色。所以,我正在努力:

UPDATE Errors SET been_checked = 1 WHERE binary(request) REGEXP "^[a-z0-9_-./]+$" AND been_checked = 0

...但这给了我一个错误:

  

错误:无法执行查询:无法执行查询:'更新   错误SET been_checked = 1 WHERE二进制(请求)REGEXP   “^ [a-z0-9 _-./]+$”AND been_checked = 0':得到错误'无效   字符范围'来自正则表达式

我已尝试使用\-,但这也不起作用。

如何将-用作匹配字符串的一部分?

由于

1 个答案:

答案 0 :(得分:3)

您需要将连字符放在角色类的开头或结尾处或将其转义。

[-a-z0-9_./]

否则连字符表示班级内有character range