2010-05-02 106 views
1

我有一個挑戰,我希望SO社區能夠幫助我。從文檔中刪除電話號碼

我試圖解析我的PHP應用程序中的很多html文檔,以刪除個人詳細信息,例如姓名,地址和電話號碼。我可以在沒有太多麻煩的情況下刪除大部分這些細節,但是電話號碼對我來說是一個真正的問題。

我的想法是從這些文檔中獲取文本,並使用正則表達式來識別電話號碼並用另一個值替換它們,例如'xxxx'。

我有2個正則表達式,我正在使用一個英國固定電話號碼和一個英國手機號碼。

但是,當我嘗試運行它們對文本它只是返回一個空字符串。

我使用下面的preg_replace代碼:

$pattens = array(
     '/^(((\+44\s?\d{4}|\(?0\d{4}\)?)\s?\d{3}\s?\d{3})|((\+44\s?\d{3}|\(?0\d{3}\)?)\s?\d{3}\s?\d{4})|((\+44\s?\d{2}|\(?0\d{2}\)?)\s?\d{4}\s?\d{4}))(\s?\#(\d{4}|\d{3}))?$/', 
     '/^(\+44\s?7\d{3}|\(?07\d{3}\)?)\s?\d{3}\s?\d{3}$/' 
    ); 

$replace = array('xxxxx', 'xxxxx'); 

//do the search for the numbers. 
$updatedContents = preg_replace($pattens, $replace, $htmlContents); 

目前,這是造成我很多撓頭,因爲我認爲我有這個釘的,但此刻我看不出有什麼錯誤??

我相信這是非常簡單的事情。

感謝,

格蘭特

+0

你能發表一些示例輸入嗎? – 2010-05-02 13:49:05

+0

該示例將是下列其中一個+44(0)777 123456或07777123456或+44(0)207 123435等 – 2010-05-02 14:41:52

回答

2

你可能不想anchor你的正則表達式。從開頭刪除^,從最後刪除$

+0

剛剛完成一項測試,它似乎有效,並沒有刪除所有文本內容。我會做更多的測試,以確保 感謝馬克爲你提供幫助至今 – 2010-05-02 14:43:06