正则表达式:如果不以点开头,则仅匹配单词

时间:2017-07-06 10:35:57

标签: javascript regex regex-negation

让我说我有这个字符串:

  

key something.key()(。key)(key)

我希望正则表达式只匹配“[]”

中的“键”一词
  

[key] something.key()(。key)([key])

我目前使用此正则表达式/(?!\。)key / g

但是这只会排除点,并且即使它以点开头也会选择单词。

1 个答案:

答案 0 :(得分:0)

使用负字符类匹配而不是点

[^\.]

然后添加^以匹配而不是点 字符串的开头

([^\.]|^)

?:添加到群组中以使其无法捕获。

(?:[^\.]|^)

最后添加一个与您的单词匹配的捕获组:

(?:[^\.]|^)(word)

使用负面后卫可以获得相同的结果:

(?<!\.)word

唉,JavaScript正则表达式没有实现它。