我正在尝试将此查询的结果与我用于PHP验证的正则表达式匹配。
select u.id,concat(u.address1,', ',u.zip,' ',u.city,', ',c.countryName) as Address
from User u join
country c on u.countryCode=c.countryCode
输出
27 Avenue Pasteur, 14390 Cabourg, France
28 Avenue Pasteur, 14390 Cabourg, France
30 14390 Cabourg, France
29 Avenue Pasteur, 14390 Cabourg, France
我不会将此与正则表达式匹配并仅获得正确的结果。
/^(?:\\d+ [a-zA-Z ]+, ){2}[a-zA-Z ]+$/
我不确定如何使用MYSQL REGEXP
来获取此功能类似
select u.id,concat(u.address1,', ',u.zip,' ',u.city,', ',c.countryName) as Address
from User u join
country c on u.countryCode=c.countryCode
where Address REGEXP '^st'
答案 0 :(得分:1)
根据手册https://dev.mysql.com/doc/refman/5.1/en/regexp.html,在mysql中使用正则表达式,如下所示:
WHERE phone REGEXP '(435)';
现在在你的实例中你的正则表达式有一些问题。我更新的正则表达式解决了大部分问题,但仍未找到其中一个地址(30 14390 Cabourg,France)。 https://regex101.com/r/zN7yT1/1
select u.id,concat(u.address1,', ',u.zip,' ',u.city,', ',c.countryName) as Address
from User u join
country c on u.countryCode=c.countryCode
where concat(u.address1,', ',u.zip,' ',u.city,', ',c.countryName)
regexp '^[0-9]+,? [^,]+, [0-9]+,? [^,]+, [a-zA-Z]+$'
这是未经测试的,但我认为应该恢复regex101找到的三个结果。