2012-08-01 65 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