我正在尝试使用正则表达式验证输入。到目前为止,我的所有测试都失败了,因为我对正则表达式的经验有限,我认为有人可能会帮助我。
模式:数字(可能 "," 数字)(可能 ; )
字符串不能以a开头;而不是以; 数字可以单独使用或与
一起使用我的regEx(不工作):((\d)(,\d)?)(;?)
问题是它在字符串结尾之前似乎没有检查。此外,可选部件令我头疼。
更新:^[0-9]+(,[0-9])?(;[0-9]+(,[0-9])?)+$
这似乎效果更好,但与单个数字不匹配。
行:
2,3; 4,4; 3,2
2,3
2
2,3; 3; 4,3
NOK:
2,3 ,,,,
2,3asfafafa
; 2,3
2,3 ;; 3,4-
2,3; 3,4;
答案 0 :(得分:2)
您的^[0-9]+(,[0-9])?(;[0-9]+(,[0-9])?)+$
正则表达式匹配1位或更多位数,然后是,
和1位数的可选序列,后跟一个或多个类似序列。
您需要匹配零个或多个以逗号分隔的数字:
^\d+(?:,\d+)?(?:;\d+(?:,\d+)?)*$
^
请参阅regex demo
现在,调整部分:
^\d(?:,\d)?(?:;\d(?:,\d)?)*$
?
之后添加,\d
(如果要匹配单个数字)或*
(如果数字可以有多个数字):^\d(?:,\d?)?(?:;\d(?:,\d?)?)*$
或^\d+(?:,\d*)?(?:;\d+(?:,\d*)?)*$
。