正则表达式过滤文档中的链接

标签 regex notepad++

我目前正在学习正则表达式,我正在尝试使用 notepad++ 从文档中过滤所有链接(例如: http://www.link.com/folder/file.html )。实际上我想删除所有其他内容,以便最后只列出 http 链接。

到目前为止,我试过这个:http\:\/\/www\.[a-zA-Z0-9\.\/\-]+
这给了我找到的所有链接,但我如何删除剩余的东西,以便最终我有一个所有链接的整洁列表?

如果我尝试用\1 后面的任何内容替换它,显然链接将被删除,但我希望完全相反的所有其他内容都被删除。

所以它应该是这样的:
- 找到一串数字、字母和特殊符号,直到“http”
- 删除您发现的内容
- 并在“html”之后继续搜索更多数字、字母和特殊符号
- 并再次删除

有任何想法吗?非常感谢。

最佳答案

在 Notepad++ 中,在替换菜单 (CTRL+H) 中,您可以执行以下操作:

  • 查找:.*?(http\:\/\/www\.[a-zA-Z0-9\.\/\-]+)
  • 替换:$1\n
  • 选项:检查 Regular expression. matches newline

  • 这将返回您所有链接的列表。不过有两个问题:
  • 您提供的用于匹配 URL 的正则表达式远不足以匹配任何 URL。如果它适用于您的情况,那很好,否则请检查此 question
  • 将最后匹配的 URL 后的文本保持不变。您必须手动删除它。
  • 关于正则表达式过滤文档中的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19717092/

    相关文章:

    regex - Notepad++::通过正则表达式完全删除包含问号的行

    javascript - 正则表达式:捕获字符串中的所有数字,并作为新的数字字符串返回

    Javascript 正则表达式匹配第一次出现

    javascript - 使用javascript获取两个字符串之间的字符串

    regex - Notepad++ 查找字符串并将其附加到行尾

    notepad++ - Notepad++ 中的 Ruby Gemfile 没有语法高亮显示

    regex - 在 Notepad++ 中匹配不包含单词的行

    c# - 正则表达式检索第一个斜线之前的所有内容

    Python 正则表达式 - re.search() 与 re.findall()

    mysql - Notepad++如何将固定数字添加到mysql数据库中的不同数字