如何提取与某些模式不匹配的数字
How do you extract numbers which do not match some pattern?
>我需要提取长度超过 3 位的数字,并且不包括给定范围内的年份(例如,在 19xx
和 2020
之间,其中 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);
为什么此表达式与日期的结尾不匹配?
它丢弃something
,然后尝试匹配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。
对于 1900 - 2029 年,它应该是正则表达式'b('d+)'b(?<!(?:19'd{2}|20[0-2]'d))
相关文章:
- 高库存时期时间与时区不匹配
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- Javascript:图像与单选按钮的值不匹配
- 文本区域(jQuery)的结果不匹配
- 正则表达式匹配模式或匹配其他所有内容 - 匹配优先级问题
- 如果状态不匹配,则缩小为丑陋
- 为什么我网页的facebook点赞数与该网页的facebook页面不匹配
- Javascript正则表达式:在同一模式中混合匹配和不匹配
- 如何提取与某些模式不匹配的数字
- 节点 JS / Mongo 插入而不匹配模式
- 匹配模式不起作用
- 编写的模式与字符串 Javascript/jQuery 不匹配
- ng模式不应与提供的模式匹配
- 具体的glob模式不匹配后,广泛排除
- 揭示模块模式内部-外部变量不匹配
- 模板RegEx不匹配一半的有效模式
- 如何匹配url与特定的模式,但不匹配非常相似的模式
- 在html中输入url的模式不匹配
- Regex模式不能用于输入模式匹配
- Javascript正则表达式匹配模式,但不匹配正则表达式文本(r.js优化器和uglify问题)