2012-07-02 62 views
0

我建了一個正則表達式在PHP腳本匹配的句子,它的偉大工程,雖然,它錯過了第一句話。這裏是PHP,包括正則表達式。正則表達式的句子

preg_match_all('([A-Z][^\.!?]*[\.!?]\s)', '$data', $arr, PREG_OFFSET_CAPTURE); 

用於測試的字符串。

個人Bol.com 84000個客戶數據是通過在第三方那裏Bol.com它的工作的網站 泄漏訪問。 它是SQL注入漏洞。數據 ,根據Bol.com不被濫用。

商店已經影響到客戶從拿到一個話題告知本身 明顯。它涉及84000個客戶 參加了「介紹行動「的熱烈歡迎。

客戶數據在第三方那裏 Bol.com它的工作採取行動的數據庫Bol.com主任丹尼爾·羅佩爾斯 相反Tweakers.net說。客戶可以的姓名,性別,電子郵件地址和出生 過時的日期; 付款細節不詳。

「昨天晚上,我們得知誰 去年參加了營銷活動的客戶,」 Roper說。 「通過機構, 行動已經照顧 訪問的數據一段時間。」泄漏會一直在軟件 至少在去年夏天。 2月份以來的數據進行加密。 據Macworld大會,它是在工具AMFPHP泄漏。

Bol.com採取行動,該公司被放倒後。 Ropers「外 的線人那裏沒有在數據,有沒有泄露 我們非常感謝線人。」他強調,Bol.com 本身並不黑,但表示,該公司仍然希望把他的 責任。 「對於我們和我們 安全覈對表工作的所有公司。因此,我們必須一步 進一步去。」 來源:Tweakers.net

+0

是'「$ data''要匹配字符串? – xdazz

+0

不,我添加字符串測試。 –

+0

@RoelVeldhuizen:這是基因的反彈很難決定什麼是,什麼是不成句。在格式混亂的文本,我們需要更多的信息來決定是否「shdfsdf.com sdfsj」是一兩句話。你可以做的最重要的是調整正則表達式,使其適用於你的輸入 - 但不一定與每個輸入。 – nhahtdh

回答

0

我會用這個正則表達式匹配的句子:

'.*?([\.!?]+|$)' 

添加更多的調整在這裏和那裏給出了測試輸入一個更好看的輸出(僅測試輸入 - 難保對於一般的文字)

/[\S].*?(?:[\.!?]+["]?(?=\s)|$)/ 
+0

它與\ S增加。 「*(\ S + \。!?] | $)。?否則就的每個實例相匹配。 –

+0

@RoelVeldhuizen:這是我的意圖像'啊......嗯......我不know' – nhahtdh

+0

我看到一句話,我的問題是更多的東西like' 10。000' –