gpt4 book ai didi

javascript - 多个 IP 的正则表达式,以逗号分隔,带或不带子网

转载 作者:行者123 更新时间:2023-12-01 03:47:27 27 4
gpt4 key购买 nike

我有 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/XX、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

最佳答案

使用 ()* 循环环绕正则表达式前(<regex>)*如果匹配开始和结束,则将终止符移出循环,如 ^(regex)*$

匹配 ,或行尾附加 ([,\s]+|$)排除\s如果您不需要空格,+表示匹配一个或多个。

这应该可以帮助您匹配整个字符串。删除*最后为有效部分;用 ^ $ 括起来以匹配完整字符串。

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

关于javascript - 多个 IP 的正则表达式,以逗号分隔,带或不带子网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43473150/

27 4 0
文章推荐: php - JQuery、JSON 和 PHP
文章推荐: visual-c++ - Visual Studio 2013 创建更大的 exe - 没有 MFC
文章推荐: r - 使用 R 进行阿拉伯文本挖掘
文章推荐: jquery - fancybox 错误 - 对象 # 没有方法 'undelegate'