【问题标题】:How to extract particular links from html source code with regex如何使用正则表达式从 html 源代码中提取特定链接
【发布时间】:2011-12-12 16:50:32
【问题描述】:

我有完整的链接的 html 页面。但它们在 pre 标记内,如下所示

<pre class="alt2" dir="ltr" style="
        margin: 0px;
        padding: 6px;
        border: 1px inset;
        width: 640px;
        height: 130px;
        text-align: left;
        overflow: auto">
http://test.com/files/tivist.r00 
http://test.com/files/tivist.r01 
http://test.com/files/fdfd.rar 
http://test.com/files/gfgf.rar.html 
http://test.com/files/trtr.zip 
</pre>
</div><br />

页面上充满了类似的链接

有没有办法只获取整个页面的链接。

我正在使用记事本++。如果我能得到可以提取这些链接的正则表达式

【问题讨论】:

  • 所以您只想从文件中删除任何不是链接的内容?
  • 是的,我想要一个不错的链接列表,从 http 开始,以上面的任何扩展名结束

标签: html regex hyperlink notepad++ extract


【解决方案1】:

您可以使用以下正则表达式在文档中找到它们。

http://[^\s]*

我猜你可以编辑它或类似的东西

http://[^\s"><]*

【讨论】:

  • 这是有效的,但它会留下最后一个以...ist.rar&lt;/pre&gt;结尾的链接
【解决方案2】:

请务必关闭逐行选项。 Notepad++ 的正则表达式引擎非常有限且文档记录很差。尝试下载editpad pro试用版。

(?&lt;=\&lt;pre.+?)http:\/\/.+?($|\s)(?=.+?\&lt;\/pre\&gt;)

这应该只获取pre 标记内的链接。

这是 Edit Pad Pro 试用版的屏幕截图

【讨论】:

  • 抱歉,notepad++ 正则表达式引擎很糟糕。这是很好的正则表达式,只需尝试 edit pad pro 试用版。无论如何,您会更喜欢它的界面。我做到了。
  • 我安装了它,但问题是最后一个
     标签与.rar 像.rar&lt;/pre&gt; 一样,所以你的正则表达式不起作用。但是,如果我在它们之间放置空间,那么它就可以工作。我可以不用空间吗?
  • +1 在 EditPad 上推荐。但是您不再需要 Pro 版本。 EditPadLite 现在包括正则表达式搜索/替换!
  • @user1094163 我真的很难相信我的正则表达式不起作用。因为我使用您的示例代码作为搜索文本包含了表达式结果的屏幕截图。
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
  • 2023-03-18
  • 2010-10-04
  • 1970-01-01
  • 2010-11-14
相关资源
最近更新 更多