如何让我的正则表达式捕获完整的句子而不是缩写

时间:2015-01-10 15:50:59

标签: regex

我有一些长文本字符串是一系列连接句子。我写了一个正则表达式,通过结合句点匹配和积极的前瞻来捕获单个完整的句子。我遇到麻烦的地方是我的文字包括常见的缩写,如(Mrs。Mrs.)我的常规快递将这些缩写视为完整的句子,因此产生了不好的结果。

有没有人对这种情况有所了解。

我正在使用的正则表达式是:

/(\S.+?[.?!])(?=\s+|$)/gm  

我的示例文本是:

Bill attended the meeting and provide some valuable input.  John was at the meeting but said nothing. Mr. Smith could not attend.  A. B. Butler presented the financial results and took questions. 

理想情况下,我会得到四个捕获 - 每个句子一个,但我得到六个,因为先生和A. B.被视为句子。

您可以在此处查看我的正则表达式的结果:

regex101 - Sample Regular Expression

我正在使用javascript。

1 个答案:

答案 0 :(得分:2)

以下正则表达式适合您的情况。

(\S.*? [a-z]+[.?!])(?=\s+|$)

DEMO