想要匹配一个范围字符串(检查正文)
我有一个像 "[5 TO 100]%" 这样的字符串,我想在正则表达式的帮助下匹配它
此字符串中的 5 和 100 可以更改,例如 5 的范围可以从 1 到 999,而 100 也是如此
其他人会照原样,所以基本上我想匹配“[num1 TO num2]%”
- 编辑 -
重复目标仅部分满足要求,因为字符串具有非数字字符(字母和特殊字符,如[、]、 和%)。
回答
您可以使用正则表达式,(?i)[[1-9][0-9]{0,2} TO [1-9][0-9]{0,2}]%.
如果您不希望以不区分大小写的方式进行匹配,请删除(?i).
演示:
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream.of(
"[5 TO 100]%",
"[0 to 100]%",
"[10 TO 15]%",
"[999 to 1]%",
"[1000 TO 100]%",
"[5 TO 10000]%"
).forEach(s -> System.out.println(s.matches("(?i)\[[1-9][0-9]{0,2} TO [1-9][0-9]{0,2}\]%")));
}
}
输出:
true
false
true
true
false
false
regex101处的说明: