gpt4 book ai didi

mysql - 过滤电话号码 REGEX

转载 作者:行者123 更新时间:2023-11-29 07:25:48 24 4
gpt4 key购买 nike

我有一个 MySQL 查询来查找以 +1 开头的 10 位电话号码

SELECT blah
FROM table
WHERE phone REGEXP'^\\+[1]{1}[0-9]{10}$'

如何进一步过滤此 REGEXP 以仅搜索特定的 3 位区号? (即采用美国号码格式的国际 10 位电话号码)

我尝试使用 IN 子句,即。 IN('+1809%','+1416%') 但语法错误结束

WHERE phone REGEXP'^\\+[1]{1}[0-9]{10}$' IN('+1809%','+1416%')

最佳答案

您可以使用 grouping constructalternation operator在这里,喜欢

REGEXP '^\\+1(809|416)[0-9]{7}$' 
^^^^^^^^^

只需从 10 中减去 3 即可匹配尾随数字。请注意,在 8.x 之前的 MySQL 版本中,您不能使用非捕获组,只能使用捕获组。

此外,[1]{1} 模式等于 1,因为默认情况下每个模式只匹配一次(即 {1} 总是多余的)并且使用内部只有一个符号的字符类 [...] 意义不大,它意味着两个或更多,或者避免转义某些符号,但是1 不必转义,因为它是一个字符字符,所以方括号在这里完全多余。

关于mysql - 过滤电话号码 REGEX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53840390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com