我想创建一个正常的表达式,我希望匹配,以防我的号码被昏迷分开。 例如:
1 OK
1,2,3 OK
1\n2,3 OK
1,\n Not OK
1,,2 Not OK
1,\n2 Not Ok
到目前为止,我创建了这个表达
\d+(([,.|\n])+\d+)*
如果我用+
将最后一个*更改为至少1 \d+(([,.|\n])+\d+)+
然后所有以前的方案都有效,但不是这个
1 Not OK//And should be ok
我正在使用matcher.find()
Matcher matcher = Pattern.compile(pattern).matcher(number);
if (matcher.find()) {
System.out.println("total number:" + matcher.group(0));;
}
知道我的正则表达式中我做错了什么吗?
答案 0 :(得分:1)
您可以使用此正则表达式:
^\d+(?:(?:,|\n)\d+)*$
Java正则表达式:
Pattern p = Pattern.compile("^\\d+(?:(?:,|\\n)\\d+)*$");
PS:要匹配文字\n
,您需要:
^\d+(?:(?:,|\\n)\d+)*$