2015-09-25 64 views
0

我有一個字符串,我需要獲取所有包含單詞「one」的句子,並將它們存儲在一個數組中。什麼是最好的,最快的方法來做到這一點?獲取具有特定單詞的句子並存儲在數組中

$text = "I have one treehouse. I have one dog. I have two cats." 

所需結果

$array[0] = "I have one treehouse."; 
$array[1] = "I have one dog."; 

PS:我的示例代碼的字符串是有點矮,但是那種串的,我需要在範圍內使用10-100頁,還等什麼是完成此任務的最快和最好的方法?

+2

語言處理非常迅速地變得非常複雜。準備好一大堆邊緣案例。 – David

+1

你的句子總是以這種格式嗎?你有沒有像「一位可用的外科醫生是史密斯博士」? –

回答

1

你應該可以用正則表達式來做到這一點,也許。事情是這樣的:

/[\w\s]+?\bone\s?[\w\s]*?\./g 

在PHP中,使用preg_match_all

$text = "i have one treehouse. i have one dog. I have two cats."; 
$matches = preg_match_all('/[\w\s]+?\bone\s?[\w\s]*?\./', $text, $array); 

DEMO:https://eval.in/439700

注意:您可能需要trim()每個比賽的,不知道我是否可以修復正則表達式來照顧這一點。

+0

不能在裏面使用變量。例如,不能使用$ 1而不是一個。 – jessica

+0

@jessica:在哪裏?正則表達式?它只是一個字符串:''/ [\ w \ s] +?\ b'。$ one。'\ s?[\ w \ s] *?\ ./'' –

+0

準確。你不能使用它。如果你這樣做,它會顯示一個空數組。 – jessica

相關問題