Skip to main content
 首页 » 编程设计

c#之正则表达式,在两个词之间找一个词

2024年01月21日31cyq1162

我有这个字符串

<p/><ul><li>test1<p/></li><li>test2<p/></li></ul><p/> 

我尝试做的是提取“li”标签内的所有“p”标签,但不提取它之外的“p”标签。

目前我只能 通过

提取所有“li”标签
\<li\>(.*?)\</li\> 

我不知道如何提取其中的“p”标签。

非常感谢任何指针!!

请您参考如下方法:

使用 HTML 解析器而不是正则表达式要可靠得多。使用 HTML Agility Pack :

HtmlDocument doc = new HtmlDocument(); 
doc.LoadHtml("<p/><ul><li>test1<p/></li><li>test2<p/></li></ul><p/>"); 
IEnumerable<HtmlNode> result = doc.DocumentNode 
                                  .Descendants("li") 
                                  .SelectMany(x => x.Descendants("p"));