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

javascript正则表达式提取包含某个单词的所有句子2次,javascript,Javascript,例如,我有一个句子(str1)有两个单词contractor,而(str2)有一个单词contractor。我需要一个正则表达式,将提取所有包含2个单词的句子 我把句子定义为、?或前面的任何内容这里。随时适应您的需要 要捕获一个承包商: [^.!?]*\bcontractor\b[^.!?]*[.!?] 每一场比赛都是一个句子,里面有一个或多个“承包商” 要捕获两个或多个,请使用以下命令: [^.!?]*\bcontractor\b[^.!?]+\bcontractor\b.*?[.!?]

例如,我有一个句子(str1)有两个单词contractor,而(str2)有一个单词contractor。我需要一个正则表达式,将提取所有包含2个单词的句子


我把句子定义为
前面的任何内容这里。随时适应您的需要

要捕获一个
承包商

[^.!?]*\bcontractor\b[^.!?]*[.!?]
每一场比赛都是一个句子,里面有一个或多个“承包商”

要捕获两个或多个,请使用以下命令:

[^.!?]*\bcontractor\b[^.!?]+\bcontractor\b.*?[.!?]
它的大致意思是:匹配除句子结尾以外的所有内容,后跟“承包商”一词,后跟更多非句子结尾字符,再后跟“承包商”一词,后跟任何字符和一个句子结尾字符


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

对于一个单词contractor,我使用这个regexp/[^.?!]*(?:[.?,\s!])contractor(?=[\s.?!,;'s]){2}[^.?!]*[.?!]/GI到目前为止你尝试了什么?你还需要搜索句子还是每个字符串都是一个句子?在一个字符串中,我可以有100个句子
[^.!?]*\bcontractor\b[^.!?]+\bcontractor\b.*?[.!?]