正则表达式,用于查找两个数字之间的数值范围

时间:2013-09-19 18:54:46

标签: regex

我在电子邮件过滤设备上设置了一些规则,它只接受正则表达式来定义数值范围。不幸的是,我对正则表达式一无所知。我需要标记某个范围之间的值。例如,我需要从值1000001开始并以值8000000结束我已使用此命令部分完成此操作Kudos to this gentleman

(?<!\d)(?!1000000)\d{7}(?!\d)

这很有效,除了标记7位数值1000001及以上。我怎样才能设置限制?或者我需要写一个全新的表达式吗?

1 个答案:

答案 0 :(得分:2)

如果您将\d{7}更改为[1-7]\d{6},以确保作为该数字的一部分找到的第一个数字在1-7范围内(作为奖励,消除了引导零的可能性搞砸了。)

(?<!\d)(?!1000000)[1-7]\d{6}(?!\d)

这将使最高可接受值7999999.如果它应包含端点8000000,您可以明确地添加它,如:

(?<!\d)(?!1000000)([1-7]\d{6}|8000000)(?!\d)