我打算构建一个与逗号分隔的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/来测试正则表达式。
问候。
答案 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')