C# 需要帮助解析HTML标记之间的文本吗

C# 需要帮助解析HTML标记之间的文本吗,c#,C#,好的,问题是我有HTML字符串。我需要找到这样一种特定的格式: 一些文本 对于HTML,我需要提取一些文本,并将其保存到列表中。如何才能实现我的目标 请注意,文本可能如下所示 <p> Central: <span class="fieldText">Central_Local</span><br>Area Resolutoria: <span class="fieldText">Area_Resolutoria</s

好的,问题是我有HTML字符串。我需要找到这样一种特定的格式:

一些文本

对于HTML,我需要提取一些文本,并将其保存到列表中。如何才能实现我的目标

请注意,文本可能如下所示

<p>
    Central: 
<span class="fieldText">Central_Local</span><br>Area Resolutoria:  
<span class="fieldText">Area_Resolutoria</span><br>VPI:  
<span class="fieldText">VIP</span><br>Ciudad: <span class="fieldText">Ciudad</span>   <br>Estado:  <span class="fieldText">Estado</span><br>Region  <span class="fieldText">Region</span>    
</p>

中环:
中央\地方
区域再融合: 共振区面积
VPI: VIP
城市:城市
Estado:Estado
地区

您可以尝试regex:
@“(.*?”
如果您将其与捕获相结合,则可以使用
@“^(.*?(.*?).*?+$”
获得整个列表

但事实是,您不应该将正则表达式用于XML或HTML——正如其他人已经提到的,有很多解析器

            string s = @"
<p>
    Central: 
<span class=""fieldText"">Central_Local</span><br>Area Resolutoria:  
<span class=""fieldText"">Area_Resolutoria</span><br>VPI:  
<span class=""fieldText"">VIP</span><br>Ciudad: <span class=""fieldText"">Ciudad</span>   <br>Estado:  <span class=""fieldText"">Estado</span><br>Region  <span class=""fieldText"">Region</span>    
</p>";

            Match m = Regex.Match(s, @"^(.*?<span .*?>(.*?)</span>.*?)+$", RegexOptions.Singleline);

            foreach (var capture in m.Groups[2].Captures)
                Console.WriteLine(capture);
string s=@”

中环:
中央\地方
区域再融合: 共振区面积
VPI: VIP
城市:城市
Estado:Estado
地区

”; Match m=Regex.Match(s,@“^(.*?(.*?.*?)+$”,RegexOptions.Singleline); foreach(m.Groups[2]中的var捕获。捕获) 控制台写入线(捕获);
我不喜欢用正则表达式处理这样的东西


我已经写了一篇免费的文章,你可以按原样使用,修改以满足你的需要,也可以作为你自己解决这个问题的指南。

对于像这样的小东西,我更喜欢使用正则表达式。不确定C#语法是什么,但表达式应该是这样的:

|<span class="fieldText">(.+)</span>|
|(.+)|

Jonathan Wood关于使用HTML标记解析器的建议也是一个好主意,尤其是当您需要进行大量解析时。

您是否尝试过?

正则表达式已被证明是解析HTML的一个糟糕的解决方案。这正是您执行此任务所需的。

您好,感谢您询问正则表达式是否工作正常,但这只是给我带来了第一个匹配项,我尝试通过添加
\b
来更改正则表达式以获得所有行,但它不起作用