匹配ip之后的端口正则匹配示例 java
时间: 2023-09-01 12:11:11 浏览: 122
好的,以下是Java中使用正则表达式进行IP地址和端口匹配的示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IPAndPortRegexDemo {
public static void main(String[] args) {
String input = "Server 1.2.3.4:8080 is running";
Pattern pattern = Pattern.compile("(\\d{1,3}\\.){3}\\d{1,3}:(\\d{1,5})"); // 匹配IP地址和端口号
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
String ip = matcher.group(0).split(":")[0]; // 获取IP地址部分
int port = Integer.parseInt(matcher.group(2)); // 获取端口号部分
if (isValidIP(ip) && port >= 1 && port <= 65535) { // 判断IP地址和端口号是否合法
System.out.println("IP: " + ip + ", Port: " + port);
}
}
}
private static boolean isValidIP(String ip) {
String[] parts = ip.split("\\.");
if (parts.length != 4) {
return false;
}
for (String part : parts) {
try {
int num = Integer.parseInt(part);
if (num < 0 || num > 255) {
return false;
}
} catch (NumberFormatException e) {
return false;
}
}
return true;
}
}
```
以上代码中,我们使用正则表达式 `(\\d{1,3}\\.){3}\\d{1,3}:(\\d{1,5})` 匹配输入字符串中的IP地址和端口号,并使用 `split()` 方法将匹配到的字符串分别提取出IP地址和端口号,最后判断IP地址和端口号是否合法(IP地址是否符合IPv4规范,端口号是否在合法范围内),符合条件则输出IP地址和端口号。
阅读全文