Sublimetext3 有没有办法删除GET单词之前的所有字符?
我在windows上使用升华文本,我有这样的东西Sublimetext3 有没有办法删除GET单词之前的所有字符?,sublimetext3,text-editor,Sublimetext3,Text Editor,我在windows上使用升华文本,我有这样的东西 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-4543646554764576
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
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这个词之前把所有的东西都去掉,所以我想要这样的输出
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
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的行,simplefind+replaceregex 您可以使用顶部菜单中的“查找”然后“替换”,或者随时按“ctrl+h”来实现此目的
*\shttp
http
(空白)http
匹配为止
空白是一个健全的检查,因为左侧可能有“http”,但不太可能有空白后跟http。
编辑
@Robert Mennell的评论让我意识到我不知道左手边是否可以包含空格,所以这里有一个改进的正则表达式供你们处理
要明确的是,这两个版本都适用于OP数据集,如果更简单的正则表达式现在或将来不适用于完整的实际数据集,则改进可能会处理得更好:)
尽管如此,请随意使用其中一个,我把另一个放在了上面
查找^(.*)\shttp([^\s]*)$
替换http\2
在正则表达式中:
表示任何字符
表示0-many*
表示空白\s
和(
定义组)
,\1
ect是您呼叫这些组的方式\2
本身就是行开始^
和[
是一个字符组]
表示负数字符组(因此,除这些字符外的任何字符)[^
是行尾$
[^\s]*
(表示任意数量的非空白字符)确保http在其后面直到行尾都没有空白来处理左侧的空白
使用替换中的\2
将第二个(
)
组中的所有文本重新放入
因此,它也可以处理http、https以及之后的任何字符,并且只会在每一行的右上角保留内容
您可以使用更丰富的版本来实现相同的结果,但是至少在sublime text 3中,“查找替换”工具已经有了默认的修改器,因此
不会替换换行符,并且会找到多个匹配项,因此这是一个非常简单的操作:)
这里有一个很棒的regex备忘单,它是由sublime text实现的:实际上,您想要的是删除uri的
http
部分之前的所有内容。要做到这一点,请使用find and replace框,为^.*http
使用一个regex,并将其替换为http
,它应该将它们全部删除
^ beginning of line
.*
. any character
* repeated
http string of `http`
这将在任何一行中匹配http
(这意味着它也与https
兼容)及其前面的所有字符,并将它们替换为http
在Sublime Text中,您也可以选择文本“GET”和
ctrl+D
来选择所有“GET”,然后只需按向右箭头,使光标位于GET word的末尾,然后只需shift+home
。它将选择GET之前的所有内容。然后您可以删除它
虽然这对较长的文件没有用处。但对于快速完成某些行,您可以使用它。这样做很方便。他们不需要空白,因为
应该注意it@RobertMennell,我知道,谢谢,不过我总是喜欢检查是否正常,以防万一文件名(左部分)在它的某个地方有http,因为它永远不会有空格字符。但是文件名中可以有空格?@RobertMennell-谢谢你,因为我不确定Web服务器或任何工具会避免它,我改进了我的答案,以防万一。这不是用来说Notepad++?它有两个标记,@Elsa请删除notepad++如果不相关,因为regex有许多稍有不同的实现,因此可能会在以后引起混淆:)@DanielBrose感谢您的解释,它帮助了很多。只是删除了notepad++标记。