regex - Asp.net DataAnnotations Regex 根据之前的 Char 评估 Char
问题描述
我正在尝试编写一个捕获一年和一周的正则表达式。对于 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 的所有文本版本?
解决方案
您可以使用
^0*\d{4,5}-0*(?:[1-9]|[1-4]\d|5[0-3])$
请参阅正则表达式演示。
细节
^
- 字符串的开始0*
- 零个或0
多个\d{4,5}
- 4 或 5 位数字-
- 一个连字符0*
- zer 或更多0
s(?:[1-9]|[1-4]\d|5[0-3])
- 从 to 的数字1
,9
或从1
to的数字4
,然后是任何数字,或5
后跟0
,1
,2
或3
$
- 字符串结束。
推荐阅读
- java - 如何在我的项目的 jar 中覆盖 flyway .sql 迁移文件?
- c++ - 如何控制标记值为 0 的输入?
- aws-cdk - 如何使用 aws-cdk 从 AWS Secrets Manager 导入 EKS 密钥?
- c++ - 逐行打印数组但最后一行不以'\ n'结尾?
- asp.net-mvc - 将数据从excel文件导入sql数据库Asp.net mvc
- java - 我们可以使用给定的索引位置从队列中删除元素吗?
- angular - 需要使用 Moment.js 而不是 UTC 时间戳接收本地 UNIX 时间戳
- xampp - 无法使 Xammp 托管的本地网站通过 VPN 工作
- javascript - 表格单元格内 DIV 的背景图像未即时加载
- javascript - 如何在 react-select 中合并 selectedOptions