我正在尝试编写一个java正则表达式,以匹配12位数字的最后2位数到一个数字范围。
因此,例如,我希望匹配给定的12位数字,其最后2位数字落在(00-24)或(25-49)或(50-74)或(75-99)的范围内。
我试过这个:5959.*[00-24]
,但它不起作用,我可以看到这不是一个正确的正则表达式。但我不确定如何将其划分为范围。
有人可以帮忙吗?
答案 0 :(得分:1)
我认为这是对正则表达式的滥用,只会增加您的维护和开发成本。这在老式的代码中表现得更好。只需提取感兴趣的数量(使用正则表达式),将其解析为整数,然后测试值在所需范围内。
String input = "012345678909";
Pattern pattern = Pattern.compile("(\\d{10})(\\d{2})");
Matcher matcher = pattern.matcher(input);
if (matcher.matches()) {
int value = Integer.parseInt(matcher.group(2));
boolean valid = value <= 24;
}
答案 1 :(得分:0)
您可以使用此正则表达式检查后两位数是00-24
:
5959.*?(?:0\d|1\d|2[0-4])