正则表达式与字符串不匹配
本文关键字:不匹配 字符串 正则表达式 | 更新日期: 2023-09-27 18:37:13
我正在尝试使用正则表达式在字符串中查找字符串序列。
我正在寻找的模式是:
dd.dd.dddd dd:dd:dd//d 是 0-9 之间的数字
我的正则表达式是:
Regex r = new Regex(@"('d[0-9]{2}.'d[0-9]{2}.'d[0-9]{4}'s'd[0-9]{2}:'d[0-9]{2}:'d[0-9]{2})$");
我现在正在尝试检查字符串"27.11.2014 09:14:59"是否与正则表达式匹配,但遗憾的是它不匹配。
string str= "27.11.2014 09:14:59";
Regex r = new Regex(@"('d[0-9]{2}.'d[0-9]{2}.'d[0-9]{4}'s'd[0-9]{2}:'d[0-9]{2}:'d[0-9]{2})$");
test = r.IsMatch(str,0);
//output: test=false
有人知道为什么字符串与该正则表达式不匹配吗?
'd[0-9]{2}
匹配三位数字:
'd first digit
[0-9] second digit
{2} causes the previous expression ([0-9]) to match again
如果删除所有出现的'd
,则模式应该有效。不过,您应该.
转义所有点,因为现在它们与任何字符匹配,而不仅仅是.
。
正如 Rawing 已经说过的,上正则表达式试图匹配 3 位数字而不是一个数字。 对于每个想知道正则表达式应该是什么样子的人:
@"('d{2}.'d{2}.'d{4}'s'd{2}:'d{2}:'d{2})$"
这很有效,至少对我来说是这样。