不幸的是,我徒劳地编写了一个适合以下情况的合适的JavaScript RegEx:
两点的正则表达式可能是:
^(\s*\S+(?:\s+\S+){1,4}\s*)$
demo
3点的RegEx可能是:
^(?=.*(There\b|\This\b|\bDog)).*$
demo
现在我有问题将这2个正则表达式组合为一个。我已经尝试过类似的东西:
^(\s*\S+(?:\s+\S+){1,5}\s*)(?=.*(There\b|\bThis\b|Dog)).*$
demo
我如何正确地将2个RegEx组合在一起?
一些例子:
Hello I am under 6 words
->否定,没有触发字
Hello I am under dog words
-> 6个单词以下的肯定词+触发词(狗)
Hello I am dog but with a longer string
->否定,因为超过6个字
Dog
->肯定,少于6个字+触发字(狗)
答案 0 :(得分:0)
您可以将第一个正则表达式中^
之后的第二个正则表达式的行距放在第一行,并在交替处使用单词边界:
^(?=.*\b(?:There|This|Dog)\b)\s*\S+(?:\s+\S+){1,5}\s*$
请参见regex demo。请注意演示(/^(?=.*\b(?:There|This|Dog)\b)\s*\S+(?:\s+\S+){1,5}\s*$/i
)中不区分大小写的修饰符。
它匹配6个单词或更少的字符串,且整个单词必须包含There
,This
或Dog
。
请参见regex graph: