Javascript regex根据多个单词的出现来选择一个句子

Javascript regex根据多个单词的出现来选择一个句子,javascript,regex,conditional,Javascript,Regex,Conditional,我可以使用此正则表达式从单个单词中选择一个句子: [^.]* word [^.]*\. 如何根据两个或多个单词以条件方式选择一个句子 例如,如果存在单词A和(单词B或单词C),请选择句子 假设单词A=“研究”,单词B=“建议”,单词C=“证据”,则将选择以下句子,因为两个单词匹配: 我们的研究表明ACTN3 R577X基因型是 DMD患者的临床表型 但是以下句子,因为它只匹配了一个单词,所以不会被选择: 此外,对RR基因型的研究显示出向下的线性关系 踝关节扭伤发生率增加的趋势 这可能会起作用:

我可以使用此正则表达式从单个单词中选择一个句子:

[^.]* word [^.]*\.
如何根据两个或多个单词以条件方式选择一个句子

例如,如果存在单词A和(单词B或单词C),请选择句子

假设单词A=“研究”,单词B=“建议”,单词C=“证据”,则将选择以下句子,因为两个单词匹配:

我们的研究表明ACTN3 R577X基因型是 DMD患者的临床表型

但是以下句子,因为它只匹配了一个单词,所以不会被选择:

此外,对RR基因型的研究显示出向下的线性关系 踝关节扭伤发生率增加的趋势

这可能会起作用:

\b\[a-zA-Z]+\b(?=\s*(test|example))
\b是一个单词边界,它允许您执行“仅单词”搜索

[a-zA-Z]将匹配任何单词(一个或多个字符的序列)

(?=)是一个

(test | example)如果与test或example匹配,则为true

工作示例。

这可能适用于:

\b\[a-zA-Z]+\b(?=\s*(test|example))
\b是一个单词边界,它允许您执行“仅单词”搜索

[a-zA-Z]将匹配任何单词(一个或多个字符的序列)

(?=)是一个

(test | example)如果与test或example匹配,则为true

工作示例。

我将使用:

\bworda\b[^.!?]*\b(?:wordb|wordc)\b
如果一个句子包含
worda
wordb
wordc
,如果没有标点符号,则匹配该句子

如果要按任意顺序匹配单词:

^(?=[^.!?]*\bstudies\b)(?=[^.!?]*\b(?:suggest|evidence)\b)[^.!?]*\.$
var测试=[
“我们的研究表明ACTN3 R577X基因型是DMD患者临床表型的修饰物。”,
“此外,对RR基因型的研究显示,随着踝关节扭伤发病率的增加,RR基因型呈线性下降趋势。”,
“此外,对脚踝扭伤证据的研究。”,
“此外,脚踝扭伤研究的证据。”,
“此外,脚踝扭伤的发生率。”
];
console.log(test.map)(函数(a){
返回a+':'+/^(?=[^.!?]*\b研究(?=[^.!?]*\b(?:建议证据)\b)[^.!?]*\.$/i.test(a);
}));我会使用:

\bworda\b[^.!?]*\b(?:wordb|wordc)\b
如果一个句子包含
worda
wordb
wordc
,如果没有标点符号,则匹配该句子

如果要按任意顺序匹配单词:

^(?=[^.!?]*\bstudies\b)(?=[^.!?]*\b(?:suggest|evidence)\b)[^.!?]*\.$
var测试=[
“我们的研究表明ACTN3 R577X基因型是DMD患者临床表型的修饰物。”,
“此外,对RR基因型的研究显示,随着踝关节扭伤发病率的增加,RR基因型呈线性下降趋势。”,
“此外,对脚踝扭伤证据的研究。”,
“此外,脚踝扭伤研究的证据。”,
“此外,脚踝扭伤的发生率。”
];
console.log(test.map)(函数(a){
返回a+':'+/^(?=[^.!?]*\b研究(?=[^.!?]*\b(?:建议证据)\b)[^.!?]*\.$/i.test(a);

}));/[^.!?]+/g
提取所有句子,然后用
索引检查单词是否存在。否则,在提取所有句子后,使用
/^(?=.*\b研究\b)(?=.*\b建议\b)(?=.\b证据\b)/
正则表达式来获取包含所有3个单词的句子。你应该考虑使用
indexOf
如果你想检查一个句子中至少有n个单词,如果你至少需要20个单词中的8个,正则表达式将变得很难使用。你能给出一些预期输出的例子吗?这取决于正则表达式的风格。你的是什么?Wiktor:javascript你最好用say
/[^.!?]+/g
提取所有句子,然后用
索引检查单词是否存在。否则,在提取所有句子后,使用
/^(?=.*\b研究\b)(?=.*\b建议\b)(?=.\b证据\b)/
正则表达式来获取包含所有3个单词的句子。你应该考虑使用
indexOf
如果你想检查一个句子中至少有n个单词,如果你至少需要20个单词中的8个,正则表达式将变得很难使用。你是说[^.]*(test | example)[^.]*\。你在给出的例子上试过吗?你是说[^.]*(test | example)[^.]*\。你在给出的例子上试过吗?