我需要使用 PHP 和 regex 验证意大利地址。 我必须这样写:
Via/Corso (meaning street)/Viale (boulevard)/Piazza (square) [road] (,) [civic number], [city] ([abbreviation of province]).
一个例子是:
在上一篇文章中,我找到了完整的澳大利亚地址的解决方案,但我不知道如何进行更改。 这是代码和被认为有效的地址示例:
(澳大利亚15 Cremorne,Gordon St 15号)
if(!(preg_match('/^(?:\\d+ [a-zA-Z ]+, ){2}[a-zA-Z ]+$/', trim($_POST["via"])))){
$via_err = "This street is invalid, insert #, Street name, Zip Code, City, Country.";
} else
$via = trim($_POST["via"]);
感谢所有可以帮助我解决此问题的人。
答案 0 :(得分:0)
您将想要执行以下操作,只需确保使用i
标志运行它即可使其不区分大小写:
(via|corso|viale|piazza) ([a-zA-Z ]+?),? (\d+), (\w+) \((\w+)\)
最棘手的地方是第一个开关,由于街道种类繁多,所以有点混乱。我只是注意到您实际上并不需要这些组,因此除了第一组括号之外,您还可以删除它们:
(via|corso|viale|piazza) [a-zA-Z ]+?,? \d+, \w+ \(\w+\)
如果您要提取它们,它们也不会受伤。