我想验证输入(字符串类型),该输入具有定界符(仅“,”或“;”),后跟多个特定长度,例如input1 = 444554; 445148,41412;和input2 = 414454、784554等。
答案 0 :(得分:0)
我的猜测是,该表达式可能会验证:
^(.*?)=\K(\s*([0-9]{6})\s*[;,])+\s*$
,并且如果需要,我们可以添加更多边界,例如,可以根据需要使用输入名称更改(.*?)
。
如果您感兴趣,请在此demo中对表达式进行说明。
import java.util.regex.Matcher;
import java.util.regex.Pattern;
final String regex = "^(.*?)=\\K(\\s*([0-9]{6})\\s*[;,])+\\s*$";
final String string = "input1=444554; 445148, 414121;\n"
+ "input1=444554; 445148, 41412;\n"
+ "input2=414454, \n"
+ "input1=444554; 44514, 414121;\n"
+ "input1=444554; 445141, 414121; 414121\n"
+ "input2:414454, ";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
我认为
input1=444554; 445141, 414121; 414121
不需要,因为后面没有,
或;
。