Java:匹配输入框中仅包含数字、逗号和空格字符的正则表达式

3

有一个填满数字或数字组的字段。

逗号后必须有一个空格!

符号","和空格不能是字段的开头和结尾/

^[\d+]{1,}([,]{1}[\s]{1}).*[\d+]$ 
- this does not work. please help to write a regular expression according to the described condition.

例子

1 - ok!
2, 3 - ok!
6, 7, 4 -ok!
,5 - bad!
5 6 0 - bad!
4,5 - bad!

2
你有问题吗? - Scary Wombat
你能否给出这个神秘“field”的一个示例值?你对输入数据的描述相当模糊。 - bkis
1个回答

4
您可以使用带空格(或 \s )前缀的重复组。
在您的模式中,您可以删除 .* 并匹配组内的最后一个 \ d + 。然后重复该组0次以上。
它将如下所示: ^ [\ d] {1,}([,] {1} [\ s] {1} [\ d] +)* $ 请注意,您不必将 \ d + 放在方括号之间,否则符号 + 将被按字面意思匹配,并且量词 {1} 可以省略:
^\d+(?:, \d+)*$

在Java中

String regex = "^\\d+(?:, \\d+)*$";

正则表达式演示 | Java演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接