试图在Notepad ++中解析html

时间:2015-04-20 15:59:08

标签: html regex parsing notepad++

我一直试图传递一个包含超链接及其描述的列表的大型html片段。

<li class="exhibitor-box">
    <figure>                        
    <img src="/images/show/logos/exhibitor_7210_letter.jpg" alt="Business Show Exhibitor">
    </figure>
    <h3 class="exhibitor-name"><a href="/exhibitors/financial-services/365-business-finance/">365 Business Finance</a></h3>
    <p>We provide funding to small and medium size businesses that take payment via credit cards.Our application process takes minutes, and you...</p>
</li>

我一直试图从每个列表元素中获取超链接描述,但我只能使用我的正则表达式匹配包含标记的整个超链接,即使使用正则表达式,我将如何删除我周围的文本匹配而不是在记事本++中替换我的匹配。

2 个答案:

答案 0 :(得分:1)

如果您要做的只是用内部文本替换锚标记,您可以这样做:

找到:

(<li class="exhibitor-box">.*?<a href=".*?">)(.*?)(</a>.*?</li>)

替换为:

($2)

说明:

您正在从li标记中捕获第一组中的“参展商框”类到第一个捕获组中的开始锚标记,第二个捕获组中的链接文本,并通过第三个捕获组中的结束li标记关闭锚标记。然后,只用第二个捕获组替换它们。

请注意,这是非常特别的 - 如果你的类发生了变化,你必须稍微改变它,如果你的HTML从一个li标签格式不一致到下一个,它可能不起作用,它假设你每个li代码只有一个锚标记。

答案 1 :(得分:0)

你可以这样做:

<a href=".*">(.*)</a>

并提取该组。

但是正如评论中提到的那样,你不应该通过RegEx来解析HTML。

如果您在提取群组时遇到问题,可以尝试使用Addon RegEx Helper或类似功能,以便您提取确切的群组。