Sublime Text 3 - 使用条件匹配进行正则表达式替换

Sublime Text 3 - 使用条件匹配进行正则表达式替换

在 Notepad++ 中,可以在“代替“ 盒子:

(?{1}{$1}\n:)

这意味着如果第一组匹配,则用第一组后跟新行替换,否则用空字符串替换

这在 Sublime Text 3 中是否也有可能?如果可以,那么具体的语法是什么?

答案1

我回答这个问题是因为它出现在搜索结果的顶部。

如果你需要写一个片段要替换字符,您可以:

  • 使用常规正则表达式语法:
    string/pattern/replacement/flags
    例如"${SELECTION/\\s//g}"删除选择中的空格

  • 使用Perl 正则表达式条件语法,在我看来这更难理解;你必须对模式进行分组,然后稍后引用它们,如下所示:
    string/(group1)/(?1true-expression:false-expression)其中1代表第一组括号,2 代表第二组括号,等等
    。例如,如果文件扩展名是 ,则用于在 后添加带有“ ”"${TM_FILENAME/(.*\\.)(py|sh)|(.*)/(?2#:\\/\\/)(?3:)/} TODO - "的注释,如果不是,则使用两个斜杠 ( )。TODO -#.py.sh//

在里面Sublime Text 变量替换文档,更一般的Perl 正则表达式语法文档还提供,它可能对某些人有用(其中有一节关于条件表达式)。

如果你只是想使用“查找和替换”框Ctrl+H对我来说),那么它非常简单,只需激活正则表达式(Alt+R对我来说),填写您要查找的模式并将替换框留空以删除您不想要的内容。

相关内容