尝试在 Notepad++ 中解析 html

Attempting to parse html in 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>

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

你可以简单地做:

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

并提取组。

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

如果您在提取组时遇到问题,您可以尝试 Addon RegEx Helper 或类似的东西,它可以让您提取准确的组。

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

查找内容:

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

替换为:

()

解释:

您正在捕获从第一组中 class 为 "exhibitor-box" 的 li 标记到第一个捕获组中的起始锚标记的所有内容,即 link 第二个捕获组中的文本,以及通过第三个捕获组中的结束 li 标记结束的锚标记。然后,您仅用第二个捕获组替换它们。

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