javascript正则表达式提取包含某个单词2次的所有句子

时间:2017-02-07 17:55:07

标签: javascript

例如,我有句子(str1)有2个单词承包商和(str2)有1个承包商单词。我需要一个正则表达式,它将提取包含2个字承包商

的所有句子
var str1 = "Before hiring your chosen contractor, be certain to get a solid estimate in writing because not all contractors are honest and upfront in their quoting of costs."

var str2 = "Before hiring your chosen contractor, be certain to get a solid estimate in writing."

1 个答案:

答案 0 :(得分:1)

我将句子定义为.?!之前的任何内容。随意适应您的需求。

要抓住一个contractor

[^.!?]*\bcontractor\b[^.!?]*[.!?]

每场比赛都是一个或多个"承包商"在它。

要捕获两个或更多,请使用此:

[^.!?]*\bcontractor\b[^.!?]+\bcontractor\b.*?[.!?]

它近似地读取:匹配除句子结尾之外的所有内容,然后是单词"承包商",接着是更多非句子结尾的字符,接着是单词"承包商"再次,随后是任何一个字符和一个句子结尾字符。

确保设置全局 g标记,以便找到每行多个匹配项。您还必须修剪结果,因为句子可以从上面的模式中的空格开始。