gpt4 book ai didi

javascript - 为什么这个正则表达式返回匹配?

转载 作者:行者123 更新时间:2023-11-30 17:03:14 24 4
gpt4 key购买 nike

http://jsfiddle.net/sqee98xr/

var reg = /^(?!managed).+\.coffee$/
var match = '20150212214712-test-managed.coffee'.match(reg)
console.log(match) // prints '20150212214712-test-managed.coffee'

我只想在字符串中不存在单词“managed”时才匹配正则表达式 - 我该怎么做?

最佳答案

负前瞻很奇怪。您必须匹配的不仅仅是要查找的单词。这很奇怪,我知道。

var reg = /^(?!.*managed).+\.coffee$/

http://jsfiddle.net/sqee98xr/3/

编辑: 看来我真的用“奇怪的”描述符和外行描述来激怒某些人。这很奇怪,因为从表面上看,术语“负面前瞻”意味着“向前看并确保这些括号中的内容不在那里,然后返回并继续匹配”。作为正则表达式的爱好者,我仍然宣称这个命名很奇怪,尤其是对于第一次使用断言的用户。对我来说,将其视为“非”运算符比实际向前爬行并“向前看”的运算符更容易。为了使行为类似于实际的“向前看”,您必须匹配搜索词之前的所有内容,因此 .*.

一个更简单的解决方案是删除字符串开头 (^) 断言。同样,对我来说,将 ?! 理解为“不”更容易。

var reg = /(?!managed).+\.coffee$/

关于javascript - 为什么这个正则表达式返回匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28487838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com