Java:输入字段的正则表达式仅包含数字和逗号+空格字符

时间:2019-07-09 08:31:44

标签: java regex

有一个用数字或数字组填充的字段。

逗号后面必须有空格!

符号“ ,”和空格不能为字段的开头,/或结尾

^[\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!

1 个答案:

答案 0 :(得分:4)

您可以在重复组前面加上一个空格(或\s)。

在您的模式中,您可以删除.*并匹配组中的最后一个\d+。然后重复该组0+次。

看起来像^[\d]{1,}([,]{1}[\s]{1}[\d]+)*$

请注意,您不必将\d+放在方括号之间,否则+会在字面上匹配,并且量词{1}可以省略:

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

在Java中

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

Regex demo | Java demo