2014-12-18 88 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);