Java 代理模式的正则表达式

Java 代理模式的正则表达式,java,regex,proxy,notepad++,Java,Regex,Proxy,Notepad++,从文本垃圾列表中,我使用正则表达式。下面将执行该任务以解析代理模式 (\d{1,3}\){3}\d{1,3}:\d{2,5}。但是这种模式可以像这样解析文本: 692.248.222.879:43780 692.83.47.579:43780 这是不可能的IP地址。我想知道,如何使用正则表达式跳过这种范围 我喜欢的工具:Java或C#,记事本++。但是,任何语言都可以。要用正则表达式验证数值范围,必须提供所有可能的组合,这就是为什么通常最好使用内置工具,如.NET的IPAddress.TryPa

从文本垃圾列表中,我使用正则表达式。下面将执行该任务以解析代理模式
(\d{1,3}\){3}\d{1,3}:\d{2,5}
。但是这种模式可以像这样解析文本:

692.248.222.879:43780

692.83.47.579:43780

这是不可能的IP地址。我想知道,如何使用正则表达式跳过这种范围


我喜欢的工具:Java或C#,记事本++。但是,任何语言都可以。

要用正则表达式验证数值范围,必须提供所有可能的组合,这就是为什么通常最好使用内置工具,如.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}

要使用正则表达式验证数值范围,必须提供所有可能的组合,这就是为什么通常最好使用内置工具,如.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}
试试这个:

\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}
"

仅适用于最后一个

请尝试以下操作:

\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}
"^([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}";
"

仅适用于最后一个

"^([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}";


为什么要使用正则表达式执行此操作?在应用程序的某些方法中加入这样的逻辑(检查有效性)比在复杂的正则表达式中更好。因为notepad++比我的java代码快,所以我更喜欢这样!为什么要对正则表达式执行此操作?在应用程序的某些方法中加入这样的逻辑(检查有效性)比在复杂的正则表达式中更好。因为notepad++比我的java代码快,所以我更喜欢这样!感谢.Net图书馆的参考;上面的代码不完全解析。它将692.248.222.879:43780选择为92.248.222.879:43780。无论如何,再次感谢@我现在正在尝试,但它不。。。但无论如何,只需在前面添加一个
(?)和一个
(?!\d)结尾,使它与其他数字中间不匹配。感谢.NET库引用;上面的代码不完全解析。它选择692.248222.899:437 80到92.248222.89:4380。无论如何,再次感谢!@ Wiel.Ebe:我现在正在尝试,但它不……但是,无论如何,只添加一个<代码>(在前面和<代码>(?!)结尾,使它与其他数字中间没有任何匹配。它确实起作用了。但是既然我已经有了这个大的选择,那么对于这个结果还有其他较短的可能正则表达式吗?@ Wiel.Ebe,我不这么认为。你真的必须测试很多,即使它一开始看起来很简单。所以最好的办法是使用一些DEDIC。ated工具,这是为这个目的而测试和制作的-正如minitech在他的回答中提到的。它确实有效。但是既然我已经有了这么大的选择,有没有其他可能更短的正则表达式可以用于这个结果?@William.Ebe,我不这么认为。你真的需要进行大量测试,即使它在一开始看起来很简单。所以-最好的方法是使用一些专用工具,经过测试并为此目的而制造——正如minitech在回答中提到的那样。