我正在尝试将原始文本拆分成句子。因此,我简单地使用preg_split()
函数,并根据?
、.
和;
的出现情况将原始文本拆分为句子。但不出所料,由于.
的一些特殊情况,例如"Dr."、"Mr."等,我遇到了一些问题。
我如何才能将这样的单词或短语排除在外?
preg_split('/('. )|('? )|('; )!(Mr'.)/', $content);
您可以在正则表达式中添加负查找,以确保点前面没有"Mr"和company:
preg_split('/((?<!(Mr|Dr))'.|'?|;) /', $content);
我还稍微简化了正则表达式。您还应该考虑将's|$
(任何空白或输入末尾)替换为当前表达式末尾的单个空格。
在实际操作中查看。