我正在尝试为java编写一个匹配以下字符串的正则表达式:
数字,数字,数字(它可能是这么简单,也可能有不同数量的数字,但每个数字后面都必须有逗号,但不会有任何空格)
这是我的尝试:
[[0-9],[0-9]]+
但它似乎匹配任何带有数字的东西
答案 0 :(得分:3)
您可以尝试([0-9]+,)*[0-9]+
这将匹配:
7
7,52
7,52,999
这不匹配:
7, 52
7, 52,
答案 1 :(得分:1)
我认为这会起作用
\d+,(\d+,)+
请注意,如您所愿,只会捕获数字后跟逗号
答案 2 :(得分:1)
我猜你是从一个字符串开始的。你为什么不用String.split(",")
?
答案 3 :(得分:0)
^表示字符串的开头,$表示结束。如果你不使用它们,你可以匹配中间的东西(b
匹配的“abc”)。
+
适用于之前的元素。 b
是一个元素,[0-9]
是一个元素,所以是组(用括号括起来的东西)。
所以,你想要的正则表达式匹配:
^
[0-9]
(,[0-9])+
$
或,^[0-9](,[0-9])+$
答案 4 :(得分:0)
尝试将正则表达式[\d,]*
字符串表示为[\\d,]*
,例如下面:
Pattern p4 = Pattern.compile("[\\d,]*");
Matcher m4 = p4.matcher("12,1212,1212ad,v");
System.out.println(m4.find()); //prints true
System.out.println(m4.group());//prints 12,1212,1212
如果您想匹配最少一个逗号(,)和两个数字,例如12,1212
然后您可能希望将正则表达式用作 (\d+,)+\d+
,字符串表示为\\d+,)+\\d+
。此正则表达式匹配一个区域,该区域的数字最少为一位,后跟一个逗号(,),后跟最小一位数。