【发布时间】:2018-09-06 21:40:41
【问题描述】:
在我的项目中,我们有一个IPV 4 的正则表达式,下面是它的格式。
我无法理解它如何适合 IP。
private static final Pattern PATTERN = Pattern.compile(
"^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$");
我尝试使用在线工具 - https://regex101.com/ 了解它,但无法弄清楚它是如何工作的。
此 SO 中也给出了相同的解决方案 - Validate IPv4 address in Java
【问题讨论】:
-
你不明白可能是因为它不起作用:ideone.com/WjUCF5
-
这是有效的解决方案,也在这个 SO - stackoverflow.com/questions/5667371/… 中提到
-
@ifly6
System.out.println("192.168.0.10".matches("^(([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"));为我返回true... -
@ifly6 您链接中的正则表达式与问题中的不一样。
-
看一下图表:regexper.com/…。它应该可以帮助您理解
([01]?\d\d?|2[0-4]\d|25[0-5])部分(它是X.X.X.X 处的X,可以表示为(X.){3}X)