0

我在电子邮件过滤设备上设置了一些规则,它只接受正则表达式来定义数字范围。不幸的是,我对正则表达式一无所知。我需要在某个范围内标记值。例如,我需要从值 1000001 开始并以值 8000000结束

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

这很好用,除了它标记 7 个数字值 1000001 及以上。我该如何设置限制?还是我需要写一个全新的表达式?

4

1 回答 1

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)
于 2013-09-19T19:02:17.307 回答