1-255:
(([1-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))
也可以不加最外层括号:
([1-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])
这是0-255的:
(([0-9])|([1-9][0-9])|(1[0-9][0-9])|(2[0-4][0-9])|(25[0-5]))
Pattern pattern = Pattern.compile("[1-255]*");
Matcher isNum = pattern.matcher("25");
if(isNum.matches()) {
System.out.println("范围内");
} else {
System.out.println("范围外");
}
你好,您的这种情形下是属于取值范围约束,这种情况下不建议使用正则表达式去校验。
正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。
取值范围不属于语法规则。
建议首先用正则校验是否为整数。
如果是,转换为整数,在看是否在所在区间。
如果不是整数,直接报错。
不用正则也可以判断……
int a/256<1 就可以了