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

标签 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,因此正则表达式中没有向后查找的功能。

最佳答案

如果我理解正确,您只想捕获 taskendifthen 如果它们单独出现,两边没有任何内容(整个单词,周围没有数字)。为此,只需使用 \b 字边界:

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

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

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

关于Javascript 正则表达式被非单词字符包围,不包括周围环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101890/

相关文章:

javascript - 我如何使用 javascript 将文本插入文本区域?

javascript - 并排动态对齐div

regex - 使用 :g command in vim with multiple actions

python - 三引号的正则表达式

Mysql,REGEXP 中的空格

css - 具有特定名称和值的 css 定义的正则表达式

regex - 如何在 AWS Lambda 上导入正则表达式

javascript - 我如何在 ES5 中的递归匿名函数上应用 TO(尾调用优化)

javascript - 如何从 optgroup 中查找值,然后查找值选项添加所选属性

javascript - 在 Passport FacebookTokenStrategy 和 GoogleStrategy 中获取子域