java 正则提取ip
时间: 2023-10-20 16:03:59 浏览: 77
可以使用 Java 中的正则表达式来提取 IP 地址。以下是一个示例代码:
```java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexExample {
public static void main(String[] args) {
String input = "192.168.0.1 is a private IP address.";
String regex = "\\b(\\d{1,3}\\.){3}\\d{1,3}\\b"; // 匹配 IP 地址的正则表达式
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
System.out.println(matcher.group());
}
}
}
```
该代码将输出匹配到的 IP 地址:`192.168.0.1`
相关问题
用java写一个提取符合ip地址的正则表达式并去重
好的,下面是Java代码:
```java
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IpRegex {
public static void main(String[] args) {
String input = "192.168.1.1, 127.0.0.1, 10.0.0.1, 192.168.1.2, 172.16.0.1, 127.0.0.1";
Pattern pattern = Pattern.compile("\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b"); // 匹配IP地址的正则表达式
Matcher matcher = pattern.matcher(input);
Set<String> ips = new HashSet<>();
while (matcher.find()) {
ips.add(matcher.group());
}
System.out.println(ips); // 输出去重后的IP地址
}
}
```
上述代码中,使用了Java中的正则表达式类`Pattern`和`Matcher`,其中`\b(?:\d{1,3}\.){3}\d{1,3}\b`表示匹配IP地址的正则表达式。最后将匹配到的IP地址放入`HashSet`中进行去重,最终输出去重后的IP地址。
匹配ip之后的端口正则匹配示例 java
好的,以下是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地址和端口号。
阅读全文