正则表达式与字符串不匹配
Regular Expression doesn't Match with string
我正在尝试使用正则表达式在字符串中查找字符串序列。
我要找的模式是:
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})$"
这很有效,至少对我来说是这样。
我正在尝试使用正则表达式在字符串中查找字符串序列。
我要找的模式是:
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})$"
这很有效,至少对我来说是这样。