java - 如何提取IP :PORT from strings java

标签 java regex text-extraction

我有一个文本文件,并像这样遍历该文件:

for ( int i = 0; i < this.textLines.size(); i++ ) {
    String tempString = textLines.get( i );

所以现在我有 tempString 包含如下内容:

46.102.241.199:3128 0.2990 传输。 NN N 100% 2011-11-19 17:56:02

我想要的是返回 IP:PORT 部分,在这种情况下:46.102.241.199:3128

我该怎么做?

最佳答案

此正则表达式将为您提供一个带有可选端口的 IP。如果总是有端口,请删除行尾的问号。

\d{1,3}(?:\.\d{1,3}){3}(?::\d{1,5})?

请注意,这是对 IPv4 的简化验证,只会匹配格式正确而非有效的格式。并记住添加一个额外的反斜杠来转义 java 中的每个反斜杠。

这是一个 java 示例:

String text = "46.102.241.199:3128 0.2990 Transp. NN N 100% 2011-11-19 17:56:02";
String pattern = "\\d{1,3}(?:\\.\\d{1,3}){3}(?::\\d{1,5})?";

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);
while (matcher.find()) {
    System.out.println(matcher.group());
}

输出:

46.102.241.199:3128

关于java - 如何提取IP :PORT from strings java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8204271/

相关文章:

python - 有没有办法使用可读性和 python 来提取文本,而不是 HTML?

java - 注入(inject)的 EJB 引用在 ViewScoped JSF Bean 中丢失

java - 即使已实现,也会收到工具界面警告

javascript - cn=<name>,ou=<name>,o=<bic8>,o=swift 的正则表达式

regex - 如何使用Vim提取正则表达式匹配

javascript - 有没有办法用JS从渲染页面中获取所有文本?

java - 在没有 Maven 的情况下使用 Jclouds

java - 为什么使用 Zats 测试 .zul 页面时 Controller 没有被注入(inject)?

javascript - 将数字转换为数字和量词

regex - Notepad++:正则表达式作为替换