我如何在Sublime 3中搜索和替换GUID

时间:2018-08-07 11:41:36

标签: regex sublimetext3

我有一个文本文件,我想用空格替换所有GUID。

我想要:

92094, "970d6c9e-c199-40e3-80ea-14daf1141904"  
91995, "970d6c9e-c199-40e3-80ea-14daf1141904"  
87445, "f17e66ef-b1df-4270-8285-b3c15da366f7"  
87298, "f17e66ef-b1df-4270-8285-b3c15da366f7"  
96713, "3c28e493-015b-4b48-957f-fe3e7acc8412"  
96759, "3c28e493-015b-4b48-957f-fe3e7acc8412"  
94665, "87ac12a3-62ed-4e1d-a1a6-51ae05e01b1a"  
94405, "87ac12a3-62ed-4e1d-a1a6-51ae05e01b1a"  

成为:

92094,
91995,
87445,
87298,
96713,
96759,
94665,
94405,

我该如何在Sublime 3中做到这一点?

3 个答案:

答案 0 :(得分:2)

  • Ctrl + H
  • 查找:"[\da-f-]{36}"
  • 替换:LEAVE EMPTY
  • 启用正则表达式模式
  • 全部替换

说明:

"           : double quote
  [         : start class character
    \d      : any digit
    a-f     : or letter from a to f
    -       : or a dash
  ]{36}     : end class, 36 characters must be present
"           : double quote

给定示例的结果

92094,    
91995,    
87445,    
87298,    
96713,    
96759,    
94665,    
94405,    

答案 1 :(得分:1)

尝试在正则表达式搜索模式下搜索此模式:

"[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}"

然后仅用空字符串替换。这应该删除GUID,从而为您提供所需的输出。

Demo

答案 2 :(得分:0)

另一种正则表达式解决方案,涉及略有不同的 search-replace 策略,在此我们不关心GUI格式,只需获取第一列即可:

  • 搜索([^,]*,).*(同样不要忘记激活正则表达式模式。* )。
  • 替换为$1

有关正则表达式的详细信息

这里的想法是捕获所有第一列。此处的列由

序列定义
  • “某些非逗号字符”:[^,]*
  • 后跟一个逗号:[^,]*,

第一列之后可以紧跟.*(GUI格式无关紧要):[^,]*,.*

最后,我们需要使用group capturing([^,]*,).*

捕获第一列

在替换字段中,我们使用backreference $x来表示第 x个捕获组