我有以下字符串:
"1,4,6,22,88,105:22"
如何编写一个正则表达式来检查':'的左边部分,如果其中一个数字小于'x'或大于'y'则会出错。
然后检查':'的右侧部分以及'x'和'y'的相同范围检查??
我是正则表达的新手,并且很难做出这样的表达。
谢谢!
答案 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!");
}
}