例如,我有句子(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."
答案 0 :(得分:1)
我将句子定义为.
,?
或!
之前的任何内容。随意适应您的需求。
要抓住一个contractor
:
[^.!?]*\bcontractor\b[^.!?]*[.!?]
每场比赛都是一个或多个"承包商"在它。
要捕获两个或更多,请使用此:
[^.!?]*\bcontractor\b[^.!?]+\bcontractor\b.*?[.!?]
它近似地读取:匹配除句子结尾之外的所有内容,然后是单词"承包商",接着是更多非句子结尾的字符,接着是单词"承包商"再次,随后是任何一个字符和一个句子结尾字符。
确保设置全局 g
标记,以便找到每行多个匹配项。您还必须修剪结果,因为句子可以从上面的模式中的空格开始。