Java 正则表达式不按分隔符过滤

Java 正则表达式不按分隔符过滤,java,regex,Java,Regex,我想创建一个常规表达式,在这里我想匹配,以防我的号码被逗号分隔。 例如: 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

我想创建一个常规表达式,在这里我想匹配,以防我的号码被逗号分隔。 例如:

 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()


你知道我在正则表达式中做错了什么吗?

你可以使用这个正则表达式:

^\d+(?:(?:,|\n)\d+)*$
Java正则表达式:

Pattern p = Pattern.compile("^\\d+(?:(?:,|\\n)\\d+)*$");

PS:要匹配文字
\n
您需要:

^\d+(?:(?:,|\\n)\d+)*$
^\d+(?:(?:,|\\n)\d+)*$