2014-12-18 90 views
1

我需要你的帮助preg_match。 我尝试从字符串中提取postal address。我用preg_match要做到这一点,如:preg_match找到邮政地址

$search = "blablablabla 10 rue Robert Schuman 75000 Paris blablablabla"; 
$preg=preg_match("'[0-9] rue (.*) ([0-9]{5})'s" ,$search,$infos); 
print_r($infos); 

这给我:

0 rue Robert Schuman 75000 

我如何才能找到10而不只是0

Thks!

+2

尝试添加'+'后'[ 0-9]',它创造奇迹。 – 2014-12-18 22:32:12

回答

1

这应该为你工作:

<?php 

    $search = "blablablabla 10 rue Robert Schuman 75000 Paris blablablabla"; 
    $preg = preg_match("/\d+ rue (.*) ([0-9]{5})/s" ,$search,$infos); 
    print_r($infos); 

?> 

输出:

Array 
(
    [0] => 10 rue Robert Schuman 75000 
    [1] => Robert Schuman 
    [2] => 75000 
) 
+0

工作!谢谢 – 2014-12-20 09:39:08

+0

@VincentMallet欢迎您!祝你有个美好的一天:D(顺便说一句:你可以接受和赞美答案,最能帮助你,解决你的问题!) – Rizier123 2014-12-20 09:41:05

1
$preg=preg_match("'[0-9]* rue (.*) ([0-9]{5})'s" ,$search,$infos); 

将匹配任意数量的数字。

ETA如果你想要一个或多个数字:

$preg=preg_match("'[0-9]+ rue (.*) ([0-9]{5})'s" ,$search,$infos);