客户要求正则表达式检查任何大于999的数字,以提醒添加一千个分隔符,例如1000,但是他们不希望在通常提到的年份(2019,2020,2021)等情况下获得误报。有什么方法可以实现这一点,即“除了这些特定数字之外,任何4位或更多数字”?
我已经考虑过下面的内容,但这将忽略第一个数字是2的任何数字,因此将忽略2000-2999以及20,000,2,000,000等之间的任何数字,这肯定需要添加1000个分隔符。
[1|3-9]\d{3,}这真的可以用正则表达式来完成吗?提前感谢!
发布于 2020-10-07 17:33:40
使用[1|3-9]\d{3,}不会匹配2,但也会在21234中提供部分匹配
请注意,您可以省略|,因为它将在character类中逐字匹配它。
在匹配4位或更多数字之前,如果支持,您可以使用否定先行断言,直接位于右侧的不是2019、2020或2021
在开始时,您可以添加一个单词边界或例如一个锚点^来断言字符串的开始。
\b(?!20(?:2[01]|19)\b)\d{4,}https://stackoverflow.com/questions/64240866
复制相似问题