我正在尝试编写一个可以在<之间解析文本的正则表达式。 p> / p>标签。连续最多3行文本。我认为这可能是使用(?=提前搜索功能。
我目前用于获取一行的代码如下。
<p>([^']*?)<[/]p
是否可以使用一个可以在多行标签之间获取文本的正则表达式?每一行都需要在自己的组中。
一个例子是
<p>The</p>
<p>Grey</p>
<p>Fox</p>
答案 0 :(得分:2)
首先,使用Html Agility Pack可以轻松实现这一点,您将获得更强大的解决方案。
但如果您100%控制格式并且输入来自可靠来源,则可以在某些情况下使用正则表达式执行此操作:
Match match = Regex.Match(html, @"(?:<p>(.*?)</p>\s*)+", RegexOptions.Singleline);
if (match.Success)
{
foreach (Capture line in match.Groups[1].Captures)
Console.WriteLine(line.Value);
}
输出:
The
Grey
Fox