[英]Javascript REGEX: Ignore anything in between?
如何忽略Javascript RegEx之间的任何内容?
例如,我想检测所有三个字: how
are
you
的顺序。
我的正则表达式:
var pattern = /([how]+[are]+[you]+)/i;
pattern.test("howare"); //false <--- expected (correct)
pattern.test("areyou"); //false <--- expected (correct)
pattern.test("howareyou"); //true <--- expected (correct)
pattern.test(" howareyou! "); //true <--- expected (correct)
pattern.test("how are you"); //false <--- this should match!
pattern.test("how areyou "); //false <--- this should match!
但是,我想忽略它们之间的任何东西。
您只想使用以下命令在单词之间添加通配符
.* // 0 or more of any character
正则表达式规则默认为贪婪,因此尝试匹配are
将优先于.*
。
需要注意的是,您需要将方括号取出,因为它们当前允许匹配的东西不应该匹配。 例如,它们将允许hooooowareyou
进行匹配,因为方括号允许所有给定字符,而+
表示1或更大。
尝试类似:
how.*are.*you
尚不清楚您是否希望所有测试用例都通过,如果这样做,那么这里是此答案的一个示例: https://regex101.com/r/aTTU5b/2
您可以使用此正则表达式:
how.*?are.*?you
这将确保如何 , 是 你存在于相同的顺序和在两者之间忽略任何字符。 因此,它将返回对howwww areee!#%@!$%$#% you?
的匹配howwww areee!#%@!$%$#% you?
等等。使用下面的演示链接查看更多正面和负面案例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.