从垃圾文本列表中我正在使用正则表达式。以下将完成解析代理模式的工作
(\d{1,3}\.){3}\d{1,3}:\d{2,5}
。但是这种模式解析了这样的文本:
692.248.222.879:43780
692.83.47.579:43780
哪个IP地址不可能。我想知道,如何使用正则表达式跳过这种范围?
我更喜欢的工具:Java或C#,notepad ++。但是任何语言都可以。
答案 0 :(得分:2)
试试这个:
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b:\d{2,5}
692.248.222.879:43780
692.83.47.579:43780
192.168.1.1:27052
仅适用于最后一个
答案 1 :(得分:1)
要使用正则表达式验证数值范围,您必须提供所有可能的组合,这就是为什么通常最好使用内置工具,例如.NET的IPAddress.TryParse
。但无论如何......
((?:1?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:1?\d{1,2}|2[0-4]\d|25[0-5]):\d{2,5}
答案 2 :(得分:0)
"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$:\d{2,5}";