想要匹配一个范围字符串(检查正文)

我有一个像 "[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处的说明:


以上是想要匹配一个范围字符串(检查正文)的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>