javascript - 正则表达式 : only match word if it doesn't start with a dot

标签 javascript regex regex-negation

假设我有这个字符串:

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

我希望正则表达式仅匹配“[]”内的单词“keys”

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

我目前使用了这个正则表达式/(?!\.)key/g

但这仅排除了点,并且仍然选择单词,即使它以点开头。

最佳答案

使用负字符类来匹配不是点:

[^\.]

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

([^\.]|^)

添加?:给该组以使其不被捕获。

(?:[^\.]|^)

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

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

您可以使用负后视来实现相同的结果:

(?<!\.)word

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

关于javascript - 正则表达式 : only match word if it doesn't start with a dot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44946556/

相关文章:

c# - 删除所有不匹配的内容

regex - 正则表达式排除关键字集

javascript - 无法从 jquery Mobile 导航栏重定向到另一个页面

javascript - 如何在用户滚动到页面末尾时显示一个 div?

javascript - 为什么 Angular Stripe 集成需要 ChangeDetectorRef.detectChanges()?

正则表达式匹配所有未用引号引起来的出现并在字符处停止

python - 使用正则表达式匹配不在字符 < > 内的单词

javascript - 通过 Chrome 上的 KBX 扩展程序安装时,Kynetx 应用程序无法正常工作

regex - 如何使正则表达式中的负向后移与以下元序列一起工作?

正则表达式:如何将整个字符串与固定长度区域和随后被覆盖的负前瞻条件相匹配?