尝试在 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
标签只有一个锚标签。
我一直在尝试传递一个大型 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
标签只有一个锚标签。