2

我打算构建一个正则表达式,它将与一个用逗号分隔的 ips 块匹配。就我而言,是 ips 的正则表达式和一个逗号,后跟一个断线字符,但我需要设置这个条件:

如果 threre 是最后一行(没有断线字符),逗号是可选的,如果还有其他内容,则必须是逗号后跟断线。

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

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

((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/来测试正则表达式。

问候。

4

2 回答 2

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中的“点匹配所有”复选框)。

于 2013-02-14T16:57:30.283 回答
0

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

于 2013-02-14T16:59:15.597 回答