fre*_*low 11 java regex customization
Java提供了一些有用的字符类,如\d和\w.我可以定义自己的角色类吗?例如,能够为字符类定义缩写是很有用的[A-Za-z_].
Bar*_*ers 12
我可以定义自己的角色类吗?
不,你不能.
就个人而言,当我有一个(稍微)复杂的正则表达式时,我会在较小的子正则表达式中打破正则表达式,然后将它们"粘合"在一起,String.format(...)如下所示:
public static boolean isValidIP4(String address) {
String block_0_255 = "(0|[1-9]\\d|2[0-4]\\d|25[0-5])";
String regex = String.format(
"%s(\\.%s){3}",
block_0_255, block_0_255
);
return address.matches(regex);
}
Run Code Online (Sandbox Code Playgroud)
这比单一模式更具可读性:
"(0|[1-9]\\d|2[0-4]\\d|25[0-5])(\\.(0|[1-9]\\d|2[0-4]\\d|25[0-5])){3}"
Run Code Online (Sandbox Code Playgroud)
请注意,这只是一个简单的示例:验证IP地址最好可以通过java.net包中的类来完成,如果您这样做,则应将模式放在方法之外并进行预编译.
小心%你的图案内的标志!