用于验证 ip-list 中的 ip-range 的正则表达式
regex for validating ip-range from ip-list
我有用于验证逗号分隔的 50 ips 列表的正则表达式:
^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:,? ?)){1,50}$
列表示例:
10.10.10.1,127.0.0.1
现在我需要支持列表,像这样:
10.10.10.1,127.0.0.1-127.0.0.125
我尝试使用子模式,但什么也没发生
有人可以提供用于验证此字符串的正则表达式示例吗:
127.0.0.1-127.0.0.125
你可以在这里使用两件事:使用否定字符 class 来匹配 ,
或 -
,并使用子路由调用来确保你的模式保持合理大小并且字符串不能以 ,
或 -
:
开头
^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(?:[,-](?1)){0,49}$
详情:
^
- 字符串开头
((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))
- 第 1 组捕获 1 个 IP 地址
(?:[,-](?1)){0,49}
- 0 到 49(因为上面的子模式已经匹配了 1 个 IP,所以总计将达到 50 个)序列:
[,-]
- 字符 class 匹配 ,
或 -
(?1)
- "repeats" 组 1 子模式的子例程调用(不同于与捕获组捕获的相同 value 匹配的反向引用)
$
- 字符串结尾
我有用于验证逗号分隔的 50 ips 列表的正则表达式:
^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:,? ?)){1,50}$
列表示例:
10.10.10.1,127.0.0.1
现在我需要支持列表,像这样:
10.10.10.1,127.0.0.1-127.0.0.125
我尝试使用子模式,但什么也没发生
有人可以提供用于验证此字符串的正则表达式示例吗:
127.0.0.1-127.0.0.125
你可以在这里使用两件事:使用否定字符 class 来匹配 ,
或 -
,并使用子路由调用来确保你的模式保持合理大小并且字符串不能以 ,
或 -
:
^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(?:[,-](?1)){0,49}$
详情:
^
- 字符串开头((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))
- 第 1 组捕获 1 个 IP 地址(?:[,-](?1)){0,49}
- 0 到 49(因为上面的子模式已经匹配了 1 个 IP,所以总计将达到 50 个)序列:[,-]
- 字符 class 匹配,
或-
(?1)
- "repeats" 组 1 子模式的子例程调用(不同于与捕获组捕获的相同 value 匹配的反向引用)
$
- 字符串结尾