@Pattern 正则表达式仅允许:数字和空字符串以及以 0 开头的数字
@Pattern regex allowing only : numbers & empty String & numbers beginning by 0
我在我的实体中的字符串字段上使用 @Pattern 注释,正则表达式只允许数字或空字符串,但我也需要允许数字以 0 开头。
这是我现在使用的模式:
//..
@Pattern(message="Entrez un nombre" , regexp = "[+-]?(([1-9][0-9]*)|(0))([.,][0-9]+)?|(^$)")
private String BSCId;
//...
谢谢。
试试这个:
^(?:[+-]?(\d+)([,.]\d+)?)?$
这允许数字以 0 开头,并且还允许通过将整个字符串设为可选来使字符串为空。
[+-]?(\d+)
匹配可选的 +
或 -
然后匹配 1 到无穷大数字
([,.]\d+)?
匹配 ,
或 .
然后一到无穷大数字。使整个分数可选,以便也可以匹配整数。
(?:...)?
将所有内容设为可选(以便空字符串根据要求进行匹配),而不创建捕获组。
我在我的实体中的字符串字段上使用 @Pattern 注释,正则表达式只允许数字或空字符串,但我也需要允许数字以 0 开头。
这是我现在使用的模式:
//..
@Pattern(message="Entrez un nombre" , regexp = "[+-]?(([1-9][0-9]*)|(0))([.,][0-9]+)?|(^$)")
private String BSCId;
//...
谢谢。
试试这个:
^(?:[+-]?(\d+)([,.]\d+)?)?$
这允许数字以 0 开头,并且还允许通过将整个字符串设为可选来使字符串为空。
[+-]?(\d+)
匹配可选的+
或-
然后匹配 1 到无穷大数字([,.]\d+)?
匹配,
或.
然后一到无穷大数字。使整个分数可选,以便也可以匹配整数。(?:...)?
将所有内容设为可选(以便空字符串根据要求进行匹配),而不创建捕获组。