在常规条件下验证此情况

时间:2013-06-14 19:58:32

标签: java regex

我有以下字符串:

"1,4,6,22,88,105:22"

如何编写一个正则表达式来检查':'的左边部分,如果其中一个数字小于'x'或大于'y'则会出错。

然后检查':'的右侧部分以及'x'和'y'的相同范围检查??

我是正则表达的新手,并且很难做出这样的表达。

谢谢!

1 个答案:

答案 0 :(得分:1)

正则表达式不适合用于此目的。您可以通过拆分和解析字符串来完成所需的一切:(see it run

class Main
{
  public static void main (String[] args) throws java.lang.Exception
  {
        String inputString = "1,4,6,22,88,105:22";
        int min = 1;
        int max = 105;
        String[] splitString = inputString.split("[,:]");
        for (String part : splitString)
        {
            int parsedInt = Integer.parseInt(part);
            if (parsedInt < min || parsedInt > max)
                throw new Exception("Invalid");
        }
        System.out.println("Yay it's ok!");
  }
}