我得到这些字符串:
第一个单词是街道的名称,但是街道的名称可以有多个单词,然后是数字(house nr),然后是 - 然后是zipcode,之后是zipcode的名称城市。
如何在PHP中执行此正则表达式?
答案 0 :(得分:3)
$address = 'Burgemeester Vercruysselaan 6 - 8500 Kortrijk';
$matches = array();
preg_match('/^(\D+)\s*(\d+)\s*-\s*(\d+)\s*(.*)$/', $address, $matches);
print_r($matches);
/* output:
Array
(
[0] => Burgemeester Vercruysselaan 6 - 8500 Kortrijk
[1] => Burgemeester Vercruysselaan
[2] => 6
[3] => 8500
[4] => Kortrijk
)
*/
如果邮政编码可以包含数字,字母和短划线,请更改最后一个:
(\d+)\s*
为:
([0-9A-Za-z-]+)\s+
答案 1 :(得分:1)
以下内容将使用以下内容填充$ matches数组:
$matches[0] = full string
$matches[1] = street name
$matches[2] = house number
$matches[3] = zip code
$matches[4] = city
代码:
preg_match('/^(\D+) (\d+) - (\d+) (\D+)$/',$input, $matches);