【发布时间】:2018-10-28 02:45:13
【问题描述】:
我正在尝试编写一个捕获一年和一周的正则表达式。对于 ASP.net ViewModel。
这是我现在使用的表达式。
[RegularExpression(@"[\d]{4}-[0-5]\d", ErrorMessage = "Work Week Requires 4 digit year - 2 Week. e.g. 2019-09")]
这完成了我想要它做的大部分事情,但有一些情况它没有处理。
这是我试图捕获/拒绝的内容
2001-01 good
2001-10 good
2001-01 good
2001-10 good
2010-1 good
6502-9 good
4657-09 good
2003-01 good
2056-53 good
2056-54 bad
2068-60 bad
5416-00 bad
2015-0 bad
10000-15 would be nice to catch but I'm Ok with this code breaking 8000 years from now
我已经为这个问题创建了一个 regex101 https://regex101.com/r/iL5rpY/2
问题
我不知道如何根据之前的 Char 评估 Char。
问题
如何创建一个正则表达式来捕获整数 1 到 53 的所有文本版本?
【问题讨论】:
-
你可以使用
^(?:5[0-3]|[1-4][0-9]|[1-9])$匹配1-53 -
@WiktorStribiżew 太快了,我不知道帮助满员的非捕获组
-
更新了积分链接
-
啊当然可以,那么它可以是
^(?:5[0-3]|[1-4][0-9]|0?[1-9])$,带有可选的前导零。
标签: regex asp.net-mvc