Javascript正则表达式由非单词字符包围,不包括环境

时间:2014-01-13 21:38:22

标签: javascript regex

我正在尝试为Javascript编写一段正则表达式来获取单词列表的每一个匹配项,但只有当它们被非单词,非数字字符包围时(其中任何内容都不适合/ a-zA-Z0-9_ /的正则表达式。但是,到目前为止我提出的正则表达式并没有像我想要的那样完成。它仍然允许侧面的数字,它也包括单词两侧的字符。这是我现在的正则表达式:

new RegExp("(?:^|\\W)(task|end|if|then)(?:\\W|$)", "gm")

以下是我想用它的示例字符串:

task test()
    if true then
        print "hi"
    end
end

我应该做什么呢?请记住,这是JavaScript,因此正则表达式无法在正则表达式中进行后视。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您只想捕获taskendifthen,如果它们自己发生,两边都没有任何内容(整个字,没有周围的数字)。为此,只需使用\b字边界:

\b(task|end|if|then)\b

工作示例:http://regex101.com/r/uM3zI6

如果这不是您的意思,请更新您的问题以澄清您想要匹配的示例。