當前位置:首頁 » 編程語言 » 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 08:41:39 瀏覽:269
安東尼我的世界伺服器 發布:2025-02-02 08:40:09 瀏覽:759
iphone6如何刪除緩存 發布:2025-02-02 08:33:06 瀏覽:830
為什麼路由器的密碼是五位數 發布:2025-02-02 08:32:30 瀏覽:720
怎樣編程選股 發布:2025-02-02 08:22:02 瀏覽:418
電腦web應用伺服器 發布:2025-02-02 08:05:31 瀏覽:811
電腦存儲內存多少合適 發布:2025-02-02 08:00:15 瀏覽:110
登錄界面android 發布:2025-02-02 07:53:23 瀏覽:844
編譯時註解與運行時註解 發布:2025-02-02 07:53:14 瀏覽:818
怎樣登陸ftp 發布:2025-02-02 07:44:44 瀏覽:637