2015-05-22 47 views
1

編輯:我這樣做是因爲我已經提供的數據有數百個這種格式的換行符分隔的條目,我需要將微格式納入地址數據。因此,如果提供的字符串是如下,我需要輸出:PHP正則表達式提取電話號碼從+到第一個非數字

<p><span itemprop="telephone">+1 800 123 456</span> (toll free) from overseas</p> 

-

我需要一個正則表達式提取從下面的格式的電話號碼:

1 800 123 456(免費)來自海外

我一直提供的數據一直以這種格式輸入,所以有效地使用正則表達式來獲取所有來自直到第一個非數字字符「+」。

+1

那麼你可以提供你的嘗試? – hwnd

+3

而不是明確拉出電話號碼。你可以使用'preg_replace('/ [^ 0-9 \ + /','',$ phone_number);'?'來刪除不是數字或加號的所有內容。 – castis

回答

1

如果你想使用正則表達式,你可以使用這樣的事情:

\+[\d\s]+ 

$re = '/(\+[\d\s]+)/'; 
$str = "+1 800 123 456 (toll free) from overseas\n"; 

preg_match_all($re, $str, $matches); 

在另一方面,你可以用什麼castis建議,使用的preg_replace替換字符你不想通過空的字符串,並保持其餘,如:

preg_replace('/[\D\+]/', '', $phone_number);