HTML的正则表达式C#

Kam*_*mil 1 html c# regex

我有以下正则表达式:

^(<span style=.*?font-weight:bold.*?>.*?</span>)
Run Code Online (Sandbox Code Playgroud)

它匹配以下代码:

<span style="font-family:Arial; font-size:10pt"> r.</span></p><p style="margin:0pt"><span style="font-family:Arial; font-size:10pt; font-weight:bold">&#xa0;</span>
Run Code Online (Sandbox Code Playgroud)

但我想只匹配这部分(最后一个包含font-weight:粗体样式)

<span style="font-family:Arial; font-size:10pt; font-weight:bold">&#xa0;</span>
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 7

使用HTML Agility Pack解析html:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(htmlContent);

var boldSpans = from s in doc.DocumentNode.SelectNodes("//span")
                let style = s.Attributes["style"].Value
                where style.Contains("font-weight:bold")
                select s;
Run Code Online (Sandbox Code Playgroud)

甚至更好的xpath,它选择一行中的所有节点:

doc.DocumentNode.SelectNodes("//span[contains(@style, 'font-weight:bold')]")
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!!我有外部库生成的HTML,所以我假设HTML的结构(创建方式)将是constans.无论如何HTML Agility Pack是更好的选择:) (2认同)