regex - 我需要正则表达式来验证模式
问题描述
我需要正则表达式来验证模式,模式可以是以下列表的组合,
yyyy
: 今年yy
: 当前年份的最后 2 位数字MM
: 这个月dd
: 当前日期HH
: 当前时间mm
: 当前分钟ss
: 当前秒fff
: 当前毫秒ff
: 当前的 1/100 秒R
: 随机数字
规则
可以允许最少 16 个和最多 20 个字符。
我们应该只能在大写字母中添加固定字符(例如,' yyyyAAddmmss
' 这里AA
是固定值)
我们应该转义一个固定字符(例如\R
,然后R
不被替换)
只HMR
应允许字符转义,如 ' \H
' 或 ' \M
' 或 ' \R
' 因为这些字符在模式中。
模式应包含至少 4 个随机数字(例如yyRMMRddRHHRmmRss
)
它应该允许数字0-9
它不应该允许特殊字符。
这种有效模式的例子
yyyyMMddHHmmssff
yyyyMMddHHmmssffR
AByyyyMMddHHmmssRRRR
AByyyy\RMMddHHRRmmRR
\Myy\HMMdd\RRHHmmss99RR
解决方案
模式应包含至少 4 个随机数字(例如
yyRMMRddRHHRmmRss
)
您要求的东西可能不会产生唯一的匹配。
例如,20110221318763521
可以通过多种方式匹配模式:
20110221318323521
yyRMMRddRHHRmmRss => 20-10-21 18:23:21
yyMMRRddRHHRmmRss => 20-11-21 18:23:21
yyRRMMddRHHRmmRss => 20-02-21 18:23:21
yyRMMRddRHHmmRssR => 20-10-21 18:32:52
...
推荐阅读
- python - Numpy数组:高效赋值
- c# - 尝试并行运行测试时,如何正确传递 webdriver?
- sql - 获取表 sql 上每个字段的名称
- django - django rest 中的 create() 方法覆盖
- node.js - 在 jwt.io 中总是得到无效的签名
- typescript - 在 TypeScript 中切换特定类型
- c# - c# - 如何在不安装office的情况下使用access db
- assembly - 寄存器#30 ($fp) 是否与 MIPS 中的 jal 函数有关?
- c++ - C++中的最短路径算法
- c# - WCF 无法使用 Jquery 调用(使用 Postman)