由逗号分隔的许多ips的正则表达式

时间:2013-02-14 16:52:54

标签: regex

我打算构建一个与逗号分隔的ips块匹配的正则表达式。 我所拥有的是ips的一个常用表达式和一个逗号后跟一个breakline字符,但我需要设置这个条件:

如果threre是最后一行(没有breakline char),则逗号是可选的 如果还有其他的东西,那么必须是逗号后跟断线。

你能帮我完成正则表达式吗?

这是我正在构建的正则表达式

((25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)(,\n)?)*

这是测试块

192.168.1.1,
192.56.3.23,
189.35.2.2,
198.23.45.56
192.168.3.24

198.23.45.56不应该有效,因为它不是最后一行,并且该行的末尾没有逗号。

我正在使用此验证器在线http://regexpal.com/来测试正则表达式。

问候。

2 个答案:

答案 0 :(得分:2)

试试这个:

((25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)(,\n|,?$))

并使用'g'标记包含多个匹配项(http://regexpal.com中的'点匹配全部'复选框)。

答案 1 :(得分:0)

如果您使用这样一个严格的方案,为什么还要使用正则表达式?试试myIpList = myIpString.split(',\ n')