我有一个文本文件,并像这样遍历该文件:
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/