如何在崇高 3 中搜索和替换 guid



我有一个文本文件,我想用空格替换所有 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中实现这一点?

  • 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,    

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

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

然后只需替换为空字符串。 这应该会剥离 GUID,留下所需的输出。

演示

另一个正则表达式解决方案涉及略有不同的搜索替换策略,我们不关心 GUI 格式,只需获取第一列:

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

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

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

  • "一些非逗号字符":[^,]*
  • 后跟逗号:[^,]*,

然后,第一列后面可以跟任何.*(GUI 格式无关紧要(:[^,]*,.*

最后,我们需要使用组捕获捕获第一列: ([^,]*,).*

在替换字段中,我们使用反向引用$x,它引用第 x 个捕获组

最新更新