Regex在标签之间获取值,其中有新行

本文关键字:新行 标签 之间 获取 Regex | 更新日期: 2023-09-27 17:52:48

有人能帮我一下正则表达式吗?我完全卡住了

我有一个HTML代码:
<td width="50%"><span class="draw_info">Draw No: 2813<br />
Thursday&nbsp;10 Jan 13<br />
    <br />

我需要检索这一行:Thursday&nbsp;10 Jan 13

我正在使用 c# 如果这对你有任何帮助

Regex在标签之间获取值,其中有新行

我假设在您试图提取的部分中不止有HTML代码。鉴于你发布的那篇文章,我会试着给你一些Regex帮助。

我将从规范空格和删除空白标记开始,像这样:

var normalizedText = Regex.Replace(text, @"<br's*/?>|'r|'n|&nbsp;", " ");

然后我会使用专门的Regex来找到您想要的适当的<span>标记(draw info):

var spanRegex = new Regex(@"<span class=""draw_info"">'s*Draw No:'s*(?<DrawNumber>[0-9]*)'s*(?<Timestamp>.*)'s*(</span>)?");

这将提取Draw NumberDate值,您希望将它们提取到两个单独的捕获组中。然后您可以单独访问它们:

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.
}