C# 正则表达式中的反向引用问题
本文关键字:引用 问题 正则表达式 | 更新日期: 2023-09-27 17:58:22
目标是从中提取时间和日期字符串:
<strong>Date</strong> - Thursday, June 2 2011 9:00PM<br>
代码如下:
Match m = Regex.Match(line, "<strong>Date</strong> - (.*) (.*)<br>");
date = m.Captures[0].Value;
time = m.Captures[1].Value;
由于正则表达式是贪婪的,它应该将第一组一直匹配到最后一个空格。但事实并非如此。 Captures[0]
是整个line
,Captures[1]
超出范围。为什么?
使用组,而不是捕获。您的结果将在组[1]和组[2]中。
就个人而言,我建议命名这些组:
Match m = Regex.Match(line, "<strong>Date</strong> - (?<date>.*) (?<time>.*)<br>");
if( m.Success )
{
date = m.Groups["date"].Value;
time = m.Groups["time"].Value;
}