【发布时间】:2015-04-04 00:07:57
【问题描述】:
我正在研究一个正则表达式,如果匹配的单词以任何顺序出现,它将返回 true。
这种方法(在此讨论:Regular Expressions: Is there an AND operator?)
(?=.*tag1)(?=.*tag2)
在 Ruby 中匹配 tag1 tag2 和 tag2 tag1 (http://rubular.com/r/374706hkft),但在 JavaScript 中不起作用。有什么想法吗?
编辑:“在 JS 中不起作用”我的意思是
"tag1 tag2".match(/(?=.*tag1)(?=.*tag2)/)
返回[""]。
这个问题的答案指出正则表达式的格式为
/(?=.*tag1)(?=.*tag2)/.test("tag1 tag2")
【问题讨论】:
-
我很难看出它在任何正则表达式引擎中是如何工作的
-
但是如果
match确实返回了一个数组(而不是null),它确实 匹配!请注意,您的正则表达式与空字符串匹配(当后跟tag1和当后跟tag2时),这确实是您输入的一部分。
标签: javascript regex regex-lookarounds