【发布时间】:2017-04-07 06:18:18
【问题描述】:
我正在尝试使用正则表达式验证输入。到目前为止,我所有的测试都失败了,由于我对正则表达式的经验有限,我认为有人可以帮助我。
模式:digit(可能 "," digit)(可能 ;)
字符串不能以 ; 开头并且不以;结尾。 允许数字单独或与
我的正则表达式(不工作):((\d)(,\d)?)(;?) 问题是它似乎直到字符串末尾才检查。可选部件也让我头疼。
更新:^[0-9]+(,[0-9])?(;[0-9]+(,[0-9])?)+$this 似乎效果更好,但与单个数字不匹配。
好的:
2,3;4,4;3,2
2,3
2
2,3;3;4,3
正常:
2,3,,,,
2,3asfafafa
;2,3
2,3;;3,4
2,3;3,4;
【问题讨论】:
-
字符串不能以分号结尾。
-
那么,
4;6;7;8也可以吗?如果没有,你需要^\d(?:,\d)?(?:;\d(?:,\d)?)*$ -
是的,但我只是注意到这种方法可能不适合使用正则表达式。由于我不断检查输入.. (2,) 应该被允许输入.. 我猜需要重新考虑这一点。
-
也许
^\d(?:,\d?)?(?:;\d(?:,\d?)?)*$会按照您需要的方式工作?数字可以多于一个吗?我看到你添加了+。34,56好吗?
标签: c# regex pattern-matching