从文本垃圾列表中,我正在使用正则表达式。以下将完成解析代理模式的工作
(\d{1,3}\.){3}\d{1,3}:\d{2,5}
。但是这种模式会像这样解析文本:
692.248.222.879:43780
692.83.47.579:43780
这是不可能的IP地址。我想知道,如何使用正则表达式跳过这种范围?
我喜欢的工具:Java 或 C#、notepad++。但是任何语言都可以。
试试这个:
\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
仅适用于最后一个
要使用正则表达式验证数字范围,您必须提供所有可能的组合,这就是为什么通常最好使用内置工具,例如 .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}
"^([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}";