C# 正则表达式,在两个单词之间找到一个单词
我有这根绳子C# 正则表达式,在两个单词之间找到一个单词,c#,.net,regex,C#,.net,Regex,我有这根绳子 <p/><ul><li>test1<p/></li><li>test2<p/></li></ul><p/> 测试1测试2 我试图做的是提取“li”标记内的所有“p”标记,而不是它之外的“p”标记 我只能到目前为止 按提取所有“li”标记 \(*?)\ 我不知道如何提取其中的“p”标记 非常感谢任何指针 (.*?*?) <li>(.*?<p/
<p/><ul><li>test1<p/></li><li>test2<p/></li></ul><p/>
- 测试1
- 测试2
我试图做的是提取“li”标记内的所有“p”标记,而不是它之外的“p”标记
我只能到目前为止
按提取所有“li”标记
\(*?)\
我不知道如何提取其中的“p”标记
非常感谢任何指针 (.*?*?)
<li>(.*?<p/?>.*?)</li>
将匹配
之间的所有内容,其中也包含
。如果您只想匹配
,那么:
(?<=<li>).*?(<p/?>).*?(?=</li>)
(?(.*?)
将匹配
之间也包含
的所有内容。如果您只想匹配
,则:
(?<=<li>).*?(<p/?>).*?(?=</li>)
(?使用HTML解析器而不是正则表达式要可靠得多。使用:
HtmlDocument doc=新的HtmlDocument();
doc.LoadHtml(“- test1
- test2
”;
IEnumerable结果=doc.DocumentNode
.后代(“李”)
.SelectMany(x=>x.p);
使用HTML解析器而不是正则表达式要可靠得多。使用:
HtmlDocument doc=新的HtmlDocument();
doc.LoadHtml(“- test1
- test2
”;
IEnumerable结果=doc.DocumentNode
.后代(“李”)
.SelectMany(x=>x.p);
试试这个,它使用前瞻,这样LI就不属于选择范围
(?<=<li>)(.*?<p/?>.*?)(?=</li>)
(?试试这个,它使用前瞻,这样LI就不属于选择的一部分
(?<=<li>)(.*?<p/?>.*?)(?=</li>)
(?使用HTML解析器解析HTML。HTML不是“常规语言”,因此无法使用正则表达式正确解析。使用HTML解析器解析HTML。HTML不是“常规语言”因此无法用正则表达式正确解析。你和James是Regx Nija!谢谢lotYou和James是Regx Nija!谢谢lotThanks Marks。事实上,我正在解析bbcode中的一堆文本,在最后一次转换bbcode后,文本是这样的,所以我需要做一些清理。但是谢谢你的建议尽管如此。谢谢马克。事实上,我正在解析bbcode中的一堆文本,在最后一次转换bbcode之后,文本就是这样出来的,所以我需要做一些清理。不过谢谢你的建议。
<ul><li><p>test1<p/></li><li><p>test2<p/></li></ul>