有什么方法可以删除 GET 字之前的所有字符吗?

Is there any way to delete all characters before the GET word?

我在 windows 上使用 sublime text,我有这样的东西。

race-position-18374327498.png:1 GET   https://google.com/example.png
race-position-453452.png:1 GET https://google.com/example1.png
race-position-343532.png:1 GET  https://google.com/example.png
race-position-4543646554764576574564.png: GET https://google.com/example22.png
race-position-5765865865843655.png: GET https://google.com/example434.png

我想去掉 GET 单词之前的所有内容,所以我想要这样的输出。

https://google.com/example.png
https://google.com/example1.png
https://google.com/example.png
https://google.com/example22.png
https://google.com/example434.png

有没有什么软件可以做到这一点?帮我。提前致谢。

对于您提供的数据集,其中包含没有 GET 的行,简单 find+replace regex

您可以使用 'Find' 然后在顶部菜单中使用 'Replace' 或随时点击 "ctrl+h"

  1. 查找 .*\shttp

  2. 替换 http

所以它会替换任何字符,直到找到 (whitespace)http 匹配

whitespace 是一种健全性检查,因为左侧可能有 "http",但 http 后面不太可能有空格。

编辑

@Robert Mennell 的评论让我意识到我不知道左侧是否可以包含空格,所以这里是改进的正则表达式供您处理

明确地说,这两个版本都适用于 OP 数据集,如果更简单的正则表达式现在或将来不能完全适用于完整的实际数据集,改进可能会处理得更好:)

尽管可以随意使用,但我把另一个留在了上面。

查找 ^(.*)\shttp([^\s]*)$

替换 http

正则表达式中:

  • .表示任意字符
  • * 表示 0-many
  • \s 用于空格
  • () 定义组
  • </code>、<code> 等等是您回拨这些群组的方式
  • ^ 本身就是行首
  • []是一个字符组
  • [^ 表示负数字符组(所以除了这些以外的任何字符)
  • $是行尾

行的开始和结束只是确保每一行都是分开处理的,它通过确保http在行尾之前没有空格来处理左侧的空格,使用[^\s]*,意思是任何非空白字符数。

在替换中使用 </code> 会将第二个 <code>( ) 组中的所有文本重新放入。

所以它也处理 http、https 和之后的任何字符,并且只会保留每行最后右手部分的内容。

您可以使用更有趣的版本来实现相同的结果,但是至少在 sublime text 3 中,查找替换工具已经具有默认修饰符,因此 . 不会替换换行符并会找到多个匹配项,因此操作非常简单:)

这是一个很棒的正则表达式备忘单,由 sublime text 实现:https://jdhao.github.io/2019/02/28/sublime_text_regex_cheat_sheet/

实际上你想要的是删除 uri 的 http 部分之前的所有内容。要做到这一点,请使用查找和替换框并使用 ^.*http 的正则表达式并将其替换为 http 并且它应该将它们全部删除

^ beginning of line  
.*  
  . any character
  * repeated
http string of `http`

这将匹配其中包含 http 的任何行(这意味着它也与 https 兼容)以及一行中它之前的所有字符,并将它们替换为 http

Documentation on the NotePad++ website about regular expressions

在 Sublime Text 中,您还可以 select 文本“ GET ”和 ctrl+D 到 select 所有“ GET ”,然后只需按向右箭头,这样您的光标就会在 GET 词的末尾,然后只是 shift+home。它将 select GET 之前的所有内容。然后你就可以删除它了。

虽然这对较长的文件没有用。但是为了快速对某些行执行此操作,您可以使用它。做起来很方便。