我刚刚开始学习正则表达式。我在需要的地方为项目用户名创建了一个正则表达式:
2位数字
2位数字
当年的后两位数字
4年后最后一年的最后两位数字
即我需要匹配这样的输出:
23071923
其中:
23是当前日期(dd)
07是月份(mm)
19是当年(YY)
23是4年之后的年份(yy)
但是我很困惑它将如何与当前年份匹配,并且仅采用年份的最后两位数字。以及我如何匹配正则表达式的结尾是正确的,是否在一年中添加了4?
答案 0 :(得分:0)
您可以使用技巧来将输入的字符串替换为经过修改的字符串,从而进行数学运算:
var x = "23071923";
var x2 = Regex.Replace(x, @"^(\d{2})(\d{2})(\d{2})(\d{2})$", m =>
m.Groups[1].Value + m.Groups[2].Value + m.Groups[3].Value +
(int.Parse(m.Groups[3].Value) + 4));
bool is_match = x == x2;