java使用正则匹配校验端口号
时间: 2023-08-25 15:15:15 浏览: 166
你可以使用正则表达式来校验端口号。以下是一个示例的Java代码,使用正则表达式来验证端口号是否合法:
```java
import java.util.regex.Pattern;
public class PortValidator {
public static boolean isValidPort(String port) {
// 正则表达式匹配规则:1-65535之间的数字
String pattern = "^[1-9]\\d{0,3}$|^[1-5]\\d{4}$|^[6][0-5][0-5][0-3][0-5]$";
return Pattern.matches(pattern, port);
}
public static void main(String[] args) {
String port1 = "8080";
String port2 = "65536";
String port3 = "abc";
System.out.println(port1 + " is valid: " + isValidPort(port1));
System.out.println(port2 + " is valid: " + isValidPort(port2));
System.out.println(port3 + " is valid: " + isValidPort(port3));
}
}
```
在上面的代码中,`isValidPort`方法接受一个字符串参数 `port`,然后使用正则表达式进行匹配。如果端口号符合正则表达式的规则,则返回 `true`,否则返回 `false`。
正则表达式的规则解释如下:
- `^[1-9]\\d{0,3}$`:匹配1-9999之间的数字。
- `^[1-5]\\d{4}$`:匹配10000-59999之间的数字。
- `^[6][0-5][0-5][0-3][0-5]$`:匹配60000-65535之间的数字。
在上面的示例中,我们分别对端口号 "8080"、"65536" 和 "abc" 进行了验证。输出结果如下:
```
8080 is valid: true
65536 is valid: false
abc is valid: false
```
只有 "8080" 是合法的端口号,而 "65536" 和 "abc" 都是不合法的。你可以根据自己的需求自定义正则表达式来验证端口号的格式。
阅读全文