有人可以帮我处理正则表达式。我完全卡住了
我有一个 HTML 代码:
<td width="50%"><span class="draw_info">Draw No: 2813<br />
Thursday 10 Jan 13<br />
<br />
我需要检索这一行:Thursday 10 Jan 13
如果这对您有任何帮助,我正在使用C#
我假设您尝试提取的部分不仅仅是HTML代码。鉴于您发布的文章,我会尝试为您提供一些正则表达式帮助。
我将首先规范化空白并删除空白标签,如下所示:
var normalizedText = Regex.Replace(text, @"<br\s*/?>|\r|\n| ", " ");
然后我会使用一个专门的正则表达式来找到<span>
你想要的正确标签(绘制信息):
var spanRegex = new Regex(@"<span class=""draw_info"">\s*Draw No:\s*(?<DrawNumber>[0-9]*)\s*(?<Timestamp>.*)\s*(</span>)?");
这会将您想要的抽奖编号和日期值提取到两个单独的捕获组中。然后,您可以单独访问它们:
var match = spanRegex.Match(normalizedText);
// TODO: Handle !match.Success for parsing errors here.
var drawNumberString = match.Groups["DrawNumber"].Value.Trim();
var timestampString = match.Groups["Timestamp"].Value.Trim();
int drawNumber;
DateTime timestamp;
if(!int.TryParse(drawNumberString, out drawNumber))
{
// TODO: Handle draw number parsing errors here.
}
if(!DateTime.TryParse(timestampString, out timestamp))
{
// TODO: Handle timestamp parsing errors here.
}