当前位置:首页 » 编程语言 » ip的正则表达式java

ip的正则表达式java

发布时间: 2023-09-17 05:01:42

java 如何验证ip地址

可以使用正则表达式验证ip地址,ip地址分为v4和v6两个版本,v4为32位,分4段,中间用.隔开,v6为128位,可分为4段32位中间用::隔开。

以下是验证类详细代码:
import java.util.regex.Pattern;
/**
* A collection of utilities relating to InetAddresses.
*/
public class InetAddressUtils {
public static void main(String[] args){
String addr="192.168.1.2";
System.out.println(isIPv4Address(addr));
}

private static final Pattern IPV4_PATTERN =
Pattern.compile(
"^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$");

private static final Pattern IPV6_STD_PATTERN =
Pattern.compile(
"^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$");

private static final Pattern IPV6_HEX_COMPRESSED_PATTERN =
Pattern.compile(
"^((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)$");

public static boolean isIPv4Address(final String input) {
return IPV4_PATTERN.matcher(input).matches();
}

public static boolean isIPv6StdAddress(final String input) {
return IPV6_STD_PATTERN.matcher(input).matches();
}

public static boolean isIPv6HexCompressedAddress(final String input) {
return IPV6_HEX_COMPRESSED_PATTERN.matcher(input).matches();
}

public static boolean isIPv6Address(final String input) {
return isIPv6StdAddress(input) || isIPv6HexCompressedAddress(input);
}
}

❷ (java中)匹配IP的正则表达式的

ip是0.0.0.0到255.255.255.255。其中数字不能是012之类0开头。
[1-9]?\\d
表示0-99
1\\d{2}
表示100-199
2[0-4]\\d
表示200-249
25[0-5]
表示250-255
|符号分开的表达式只要一个满足就不看后面的表达式了,你的问题就是\\d|[1-9]\\d|1\\d{2}这里就是第一个\\d就满足了。
改成这样
(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d{2}|[1-9]?\\d))
{3}

❸ java 正则表达式是什么

不同情况下的正则表达式:

  • 匹配首尾空格的正则表达式:(^s*)|(s*$)。

  • 匹配html标签的正则表达式:<(.*)>(.*)</(.*)>|<(.*)/>。

  • 配空行的正则表达式: [s| ]* 。

  • 整数或者小数:^[0-9]+.{0,1}[0-9]{0,2}$。

  • 只能输入数字:"^[0-9]*$"。

  • 只能输入n位的数字:"^d{n}$"。

  • 只能输入至少n位的数字:"^d{n,}$"。

  • 只能输入m~n位的数字:。"^d{m,n}$"

  • 只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

  • 只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。

  • 只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。

  • 只能输入非零的正整数:"^+?[1-9][0-9]*$"。

  • 只能输入非零的负整数:"^-[1-9][]0-9"*$。

  • 只能输入长度为3的字符:"^.{3}$"。

  • 只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

  • 只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

  • 只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

  • 只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

  • 只能输入由数字、26个英文字母或者下划线组成的字符串:"^w+$"。

  • 验证用户密码:"^[a-zA-Z]w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

  • 验证是否含有^%&',;=?$"等字符:"[^%&',;=?$x22]+"。

  • 只能输入汉字:"^[u4e00-u9fa5]{0,}$"。

  • 验证Email地址:"^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"。

  • 验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。

  • 验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。

  • 匹配中文字符的正则表达式: [u4e00-u9fa5]。

  • 匹配双字节字符(包括汉字在内):[^x00-xff]。

  • 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function(){returnthis.replace(/[^x00-xff]/g,"aa").length;}。

❹ Java正则表达式,判断一个字符串是否是合法C类IP地址。192.0.0.1-223.255.2

正则表达式不好弄吧,这样应该可以把
public boolean checkCIP(String ipAddr) {
String[] sectorIP = ipAddr.split("\\.");
try {
if (sectorIP.length == 4) {
return checkDataRange(Integer.parseInt(sectorIP[0]), 192, 223)
&& checkDataRange(Integer.parseInt(sectorIP[0]), 0, 255)
&& checkDataRange(Integer.parseInt(sectorIP[0]), 0, 255)
&& checkDataRange(Integer.parseInt(sectorIP[0]), 1, 254);
}
} catch (NumberFormatException e) {
return false;
}
return false;
}

public boolean checkDataRange(int aimData, int begin, int end) {
if (aimData <= end && aimData >= begin) {
return true;
} else {
return false;
}
}

热点内容
滑板鞋脚本视频 发布:2025-02-02 09:48:54 浏览:430
群晖怎么玩安卓模拟器 发布:2025-02-02 09:45:23 浏览:555
三星安卓12彩蛋怎么玩 发布:2025-02-02 09:44:39 浏览:742
电脑显示连接服务器错误 发布:2025-02-02 09:24:10 浏览:534
瑞芯微开发板编译 发布:2025-02-02 09:22:54 浏览:144
linux虚拟机用gcc编译时显示错误 发布:2025-02-02 09:14:01 浏览:230
java驼峰 发布:2025-02-02 09:13:26 浏览:649
魔兽脚本怎么用 发布:2025-02-02 09:10:28 浏览:530
linuxadobe 发布:2025-02-02 09:09:43 浏览:210
sql2000数据库连接 发布:2025-02-02 09:09:43 浏览:725