第一句正则表达式

Tim*_*Tim 3 php regex

我正在使用正则表达式(php/perl兼容)来获取某些文本中的第一句话.我意识到,如果覆盖每一个案例,这可能会变得很大,但只是在目前"足够好"的事情之后.有人为此获得了现成的东西吗?

Chr*_*utz 5

最后,你需要的是自然语言解析,这是非常难以做到的,并且对于正则表达式(甚至是超级PCRE的表达式)来说可能是不可能的.考虑这句话:

对于Regex先生和他的句子匹配这么多.

到目前为止给出的每个答案都会将其解析为两个句子,这甚至不是一个边缘案例 - 想象一段以"亲爱的亚当斯先生:"或类似的东西开头的文本是非常合理的.您可以查看lookbehinds以检查标点符号前面的单词是什么,但这将无法维护,因为您必须检查每个可能的缩写.你必须检查先生和eg和co.和圣和其他许多你永远不会想到的.一段时间后,你可能会得到一个"相当不错"的实用解决方案,但它会变得丑陋,有一天它会失败.