java中的一行数字是否有正则表达式?

时间:2014-03-09 09:18:44

标签: java regex

我正在尝试创建一个if语句来检查字符串是否存在非法参数

String numbers;

    try {
        if (numbers.matches("0|1|2|3|4")) {

        } 
        else {
            throw new IllegalArgumentException();
        }
    }
    ...

有没有办法缩短正则表达式,例如“0-4”(哪些不起作用)?我已经阅读了一些关于正则表达式here的内容,但它主要是关于检查字符串的结构,而不是关于特定值。

编辑: 我正在寻找一个除了其中一个数字之外的正则表达式。

1 个答案:

答案 0 :(得分:0)

您可以将其缩短为[0-4](方括号表示字符集):

numbers.matches("[0-4]")

这将分别匹配每个字符,并在包含其他字符的字符串中查找匹配项。

如果您想确保0到4之间只有一个数字,您可以使用:

numbers.matches("^[0-4]$")