2012-08-01 58 views
0

我想原始文本分割成句子。於是我簡單地使用preg_split()功能和分割原始文本的基礎上?.;發生句子。但正如我所料,我遇到了一些問題,由於.的一些特殊情況,例如「博士」,「先生」等。剔除pattern_match一些模式在PHP

我該如何排除這樣的詞或patter分裂?

preg_split('/(\.)|(\?)|(\;)!(Mr\.)/', $content); 

回答

2

您可以添加negative lookbehind的正則表達式,以確保該點沒有被「先生」開頭和公司:

preg_split('/((?<!(Mr|Dr))\.|\?|;) /', $content); 

我還簡化了正則表達式一點點。還應該考慮在當前表達式的結尾代替單個空間\s|$(任何空白或輸入的終點)。

See it in action

+0

感謝@喬恩..... 但是,我們可以預測任何圖案爲如發生特殊模式(博士,先生,女士等) – 2012-08-01 09:50:38