加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式正面和负面前瞻性(JavaScript)?

发布时间:2020-12-13 21:54:07 所属栏目:百科 来源:网络整理
导读:我一直在阅读道格拉斯·克罗克福德的“ JavaScript:The Good Parts”.在其中,他简要介绍了积极和消极的前瞻,但仅仅是对他们所做的事情的简短陈述,以及他们不是JavaScript的一个很好的部分. 除了本书之外,我还没有看到任何提及应该避免这些,无论是在SO还是在
我一直在阅读道格拉斯·克罗克福德的“ JavaScript:The Good Parts”.在其中,他简要介绍了积极和消极的前瞻,但仅仅是对他们所做的事情的简短陈述,以及他们不是JavaScript的一个很好的部分.

除了本书之外,我还没有看到任何提及应该避免这些,无论是在SO还是在正则表达式引导网站上.我想知道我是否可以进一步解释为什么这些是JavaScript的一个不好的部分,以及应该如何避免它们 – 是否有更好的解决方案,或者它是否取决于更好的应用程序设计.

摘录(第75页):

积极的向前看
一个积极的前瞻组有一个(?=前缀.它就像一个非捕获组
除了组匹配后,文本将重绕到组的位置
开始,有效地匹配任何东西这不是一个好的部分.

消极的向前看
负前瞻组有一个(?!前缀.这就像一个积极的前瞻
group,但只有匹配不匹配才会匹配.这不是一个好的部分.

Douglas Crockford的许多建议都是关于代码的“可读性”和“可复制性”,而且还涉及编码器意图的“可复制性”.与道格拉斯不推荐使用的方式相同,例如,在正则表达式中使用点,因为这匹配任何字符,而不解释您想要匹配的内容,使用否定前瞻等于说“我允许除此之外的任何内容”.无论如何,我无法想象为什么不建议使用积极的前瞻,但很多引用IE浏览器的前瞻实现…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读