Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找Java正则表达式以匹配给定范围内的最后2位数字_Java_Regex - Fatal编程技术网

查找Java正则表达式以匹配给定范围内的最后2位数字

查找Java正则表达式以匹配给定范围内的最后2位数字,java,regex,Java,Regex,我正在尝试编写一个java正则表达式,将12位数字的最后2位与一系列数字相匹配 例如,我想匹配给定的12位数字,其最后2位在(00-24)或(25-49)或(50-74)或(75-99)范围内 我试过这样做:5959.[00-24],但它不起作用,我发现这不是一个正确的正则表达式。但我不知道如何将其划分为不同的范围 有人能帮忙吗?您可以使用此正则表达式检查最后两位数字是否为00-24: 5959.*?(?:0\d|1\d|2[0-4]) 我认为这是对regex的滥用,只会增加您的维护和开发成本

我正在尝试编写一个java正则表达式,将12位数字的最后2位与一系列数字相匹配

例如,我想匹配给定的12位数字,其最后2位在(00-24)或(25-49)或(50-74)或(75-99)范围内

我试过这样做:
5959.[00-24]
,但它不起作用,我发现这不是一个正确的正则表达式。但我不知道如何将其划分为不同的范围


有人能帮忙吗?

您可以使用此正则表达式检查最后两位数字是否为
00-24

5959.*?(?:0\d|1\d|2[0-4])

我认为这是对regex的滥用,只会增加您的维护和开发成本。这最好用好的老式代码来表达。只需提取感兴趣的数字(使用regex),将其解析为整数,然后测试值就在所需的范围内

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;
}
String input=“012345678909”;
Pattern=Pattern.compile(“(\\d{10})(\\d{2})”;
Matcher Matcher=pattern.Matcher(输入);
if(matcher.matches()){
int value=Integer.parseInt(matcher.group(2));

boolean valid=value,所以基本上,它应该是从
00-99
?谢谢,这是有效的。你能告诉我什么*?(?:意思是,让我理解的一切都休息。你能告诉我什么*?(?:意思是,让我理解的一切
*?
都和
*
一样,只是
使它成为非贪婪匹配。
(?:…)
是非捕获组。