我正在尝试编写一个捕获年份和一周的正则表达式。对于 ASP.net 视图模型。
这是我现在使用的表达式。
[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
我已经创建了一个带有此问题的正则表达式 101 https://regex101.com/r/iL5rpY/2
问题
我之前不知道如何根据 Char 评估 Char。
问题
如何创建捕获整数 1 到 53 的所有文本版本的正则表达式?
您可以使用
^0*d{4,5}-0*(?:[1-9]|[1-4]d|5[0-3])$
请参阅正则表达式演示。
详
^
- 字符串的开头0*
- 零个或多个0
sd{4,5}
- 4 或 5 位数字-
- 连字符0*
- 泽尔或更多0
s(?:[1-9]|[1-4]d|5[0-3])
- 从1
到9
的数字,或从1
到4
的数字,然后任何数字或5
后跟0
、1
、2
或3
$
- 字符串结尾。