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+)*$