javascript - 不被字母数字字符包围的单词的正则表达式

标签 javascript regex

我想要一个正则表达式匹配一个没有被任何字母数字字符包围的特定单词。我的想法是在前后包含一个否定:

[^a-zA-Z\d]myspecificword[^a-zA-Z\d]

所以它会匹配:

myspecificword
_myspecificword_
-myspecificword

不匹配:

notmyspecificword
myspecificword123

但是这个简单的正则表达式不会单独匹配单词,除非它前面有一个空格:

myspecificword   // no match
 myspecificword  // match

使用标志“gmi”并使用 JavaScript 进行测试。我究竟做错了什么?不应该这么简单吗?

https://regex101.com/r/BCkbVQ/3

最佳答案

尝试使用:

(?<![^\s_-])myspecificword(?![^\s_-])

myspecificword 两边都被输入的开头/结尾、空格、下划线或破折号包围时,这表示匹配。

Demo

关于javascript - 不被字母数字字符包围的单词的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60455356/

相关文章:

javascript - AJAX 请求后,URL 会自动附加 $_GET 参数

javascript - 在 JavaScript 中使用同步可观察对象

Javascript 替换问题(使用 alt 和 title 属性)

javascript - 从字符串中删除多余的零

java - Java 中匹配某个单词零次或一次出现的正则表达式

javascript - 按钮未启用

javascript - 如何创建在过滤时使用前缀的分面过滤器

regex - 可空性(正则表达式)

javascript - 为什么 (_=1)=>$=>_++ 是一个计数器

python - 正则表达式以匹配 Python 中设置的 rar 存档文件中的第一个文件