我正在尝试为Javascript编写一段正则表达式来获取单词列表的每一个匹配项,但只有当它们被非单词,非数字字符包围时(其中任何内容都不适合/ a-zA-Z0-9_ /的正则表达式。但是,到目前为止我提出的正则表达式并没有像我想要的那样完成。它仍然允许侧面的数字,它也包括单词两侧的字符。这是我现在的正则表达式:
new RegExp("(?:^|\\W)(task|end|if|then)(?:\\W|$)", "gm")
以下是我想用它的示例字符串:
task test()
if true then
print "hi"
end
end
我应该做什么呢?请记住,这是JavaScript,因此正则表达式无法在正则表达式中进行后视。
答案 0 :(得分:3)
如果我理解正确,您只想捕获task
,end
,if
,then
,如果它们自己发生,两边都没有任何内容(整个字,没有周围的数字)。为此,只需使用\b
字边界:
\b(task|end|if|then)\b
工作示例:http://regex101.com/r/uM3zI6
如果这不是您的意思,请更新您的问题以澄清您想要匹配的示例。