mysql REGEXP不匹配

时间:2016-10-03 21:00:21

标签: php mysql regex

我有一个正则表达式,用于捕捉字符串中的电话号码

/[1,+ ().-][\s.-]\d{3}[\s.-]\d{3}[\s.-]\d{4}/

我尝试使用此查询查询我的MySql数据库以获取此正则表达式:

SELECT
    *
FROM
    `everything`.`instances_meta` AS m
WHERE
    `meta.value` REGEXP "[1,+][\s.-]\d{3}[\s.-]\d{3}[\s.-]\d{4}" 

我可以确认正则表达式本身是否可以通过测试here来完成我想要的但是在查询时它不会提取任何匹配项。有些东西告诉我,我错过某种表达方式来说“字符串中的任何地方”。我会指定正则表达式引擎,但我不确定MySql使用什么。

1 个答案:

答案 0 :(得分:2)

使用

"[1,+][[:blank:].-][0-9]{3}[[:blank:].-][0-9]{3}[[:blank:].-][0-9]{4}"

因为MySQL REGEXP不支持\s\d

[:blank:]匹配空格和制表符,[0-9]匹配任何ASCII数字。