0

我正在尝试将原始文本拆分为句子。所以我只是使用函数并根据,和preg_split()的出现将原始文本拆分为句子。但正如预期的那样,由于某些特殊情况,例如“博士”、“先生”等,我遇到了一些问题。?.;.

我怎样才能从分裂中排除这样的词或模式?

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

1 回答 1

2

您可以在正则表达式中添加否定的lookbehind,以确保点前面没有“先生”和公司:

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

我还稍微简化了正则表达式。您还应该考虑用\s|$(任何空格或输入结尾)替换当前表达式末尾的单个空格。

看到它在行动

于 2012-08-01T09:46:48.990 回答