我有以下正则表达式来验证列数据类型NUMBER(9,2)的传入数据,其中+/-前缀是可选的。
[+-]?(?:[0-9]{1,7})?(?:\.[0-9]{1,2})?
允许值
+1
+1.1
-0.1
+.1
1
1.1
0.1
1
-1
-1.1
-.1
1111111.11
+1111111.11
-1111111.11
失败的案例
+
-
但它也只接受+/-符号,因为捕获组都是可选的。我们如何克服这个问题?
答案 0 :(得分:2)
<强> 更新 强>
由于所有捕获组都是可选的,如果发生,它将不可避免地匹配单个[+-]
使用以下正则表达式模式:
^[+-]?(\d{1,7}|(?=\.))(\.\d{1,2})?
答案 1 :(得分:0)
答案 2 :(得分:0)
使用此
^{-|\+}?\d+(\.\d{1,2})?$
这适用于你提出的每一个案例。