gpt4 book ai didi

javascript - 你如何提取与某些模式不匹配的数字?

转载 作者:行者123 更新时间:2023-11-29 20:08:14 26 4
gpt4 key购买 nike

我需要提取超过 3 位数字且不包括给定范围内的年份的数字(例如 19xx2020 之间,其中 XX 总是在字符串的末尾)。

我目前正在使用以下模式:

/(?!19[0-9]{2}|200[0-9]|201[0-9]|202[0-9])\d{3,}$/i

当我用“something 2012”测试表达式时,我总是得到结果012。我需要获取 null

var s = "moose high performance drive belt 2012";
s.match(/(?!19[0-9]{2}|200[0-9]|201[0-9]|202[0-9])\d{3,}$/i);

为什么这个表达式不正确地匹配日期的结束?

最佳答案

它丢弃一些东西,然后尝试匹配2012,但由于您的否定先行断言而失败,然后尝试匹配012,这成功了,因为实际上,012 与您的否定先行断言不匹配。

更新:

这不是很好,但它是一种解决方案。或许您可以简化它。

    (?!(?:19[0-9]{2}|200[0-9]|201[0-9]|202[0-9])\D)(?<!\d)\d{3,}

在此处查看演示:http://rubular.com/r/FLiehrUEp8 .

关于javascript - 你如何提取与某些模式不匹配的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11213738/

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