我有 IPv4地址的正则表达式:
^(([0-9] | [1-9] [0-9] | 1 [0-9] {2} | 2 [0-4] [0-9] | 25 [0-5 ])){3}([0-9] |。[1-9] [0-9] | 1 [0-9] {2} | 2 [0-4] [0-9] | 25 0 -5])$
我有 IPv4 CIDR范围的正则表达式:
^(([0-9] | [1-9] [0-9] | 1 [0-9] {2} | 2 [0-4] [0-9] | 25 [0-5 ])){3}([0-9] |。[1-9] [0-9] | 1 [0-9] {2} | 2 [0-4] [0-9] | 25 0 -5])(/([0-9] | [1-2] [0-9] | 3 [0-2]))$
问题是如何使用逗号分隔
重复它模式:
XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX / XXX,XX.XX.XX.XX,XX.XX.XX.XX / X,XX.XX.XX.X 测试数据 -
123.123.13.11, 1.0.0.0, 1.0.0.1/3, 1.0.0.0/20
正在使用http://regexr.com/来构建正则表达式, 我构建的正则表达式在下面而且没有工作 -
/(((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))),?)/g
答案 0 :(得分:1)
这是你要找的吗?
/((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/(3[0-1]|2[0-9]|1[0-9]|[4-9]))\,?\b){1,}/g
修改:细分
匹配IP地址:
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
(\/(30|2[0-9]|1[0-9]|[4-9]))?
/
后跟4到31之间的数字。
\,?
逗号。可选的。
?
空间。可选的。
\b
结尾。
){1,}
捕获组结束。至少一次。
答案 1 :(得分:1)
如果匹配起始和结束,则使用()*
ex (<regex>)*
循环使用环绕正则表达式,然后将终止符移出循环,如^(regex)*$
要匹配,
或行尾添加([,\s]+|$)
,请排除\s
,如果您不想要空格,+
表示匹配一个或多个。< / p>
这应该适合您匹配整个字符串。有效部分最后删除*
;使用^ $环绕以匹配完整字符串。
IPV4 = (([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])
Optional subnet = (\/([4-9]|[12][0-9]|3[0-2]))?
coma or end of line = (,|$)
Putting it together = (((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([4-9]|[12][0-9]|3[0-2]))?)([,\s]+|$))*
或者,对于最小的群组匹配((?!\\/)
,/
为负面展示,并非所有正则表达式引擎都支持负面预测。
(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\/(3[0-1]|2[0-9]|1[0-9]|[4-9]))?(?!\/)\b