正则表达式:更改以字符开头的行的一部分

时间:2018-10-01 00:36:16

标签: regex textmate

我正在尝试编写一个正则表达式,该表达式查找以'@'开头的行,并找到一个特定字符并将其替换。具体来说,我想查找以下行:

@xxxxxx{yyy/zzz

并替换为

@xxxxxx{yyy_zzz

((xxxxxx,yyy和zzz没有/)

我可以想出以下内容,它们从一行的开头开始,并找到第一个/

^(.*?)/(.*?)

然后我可以用

进行更改
$1_$2

但这会在/中选择更多行,我想将其集中在以@开头的行上。我将不胜感激。更具体地说,我正在Textmate中进行此操作。

2 个答案:

答案 0 :(得分:3)

^(@.*?)\/(.*)将在第1组和第2组的@xxxxxx {yyy / zzz中获得@xxxxxx {yyy和zzz。请注意,我逃脱了/。您可能需要根据使用的语言进行更改。

我过去经常使用下面的网站进行作业。它可能对您下一个正则表达式有帮助。

网站https://regex101.com/

答案 1 :(得分:1)

不是是Textmate的专家,我希望这会起作用:

(?<=@.*?)\/

通过在后面寻找“ @”符号,后跟任意数量的任何符号以及最后一个斜杠来工作。匹配项仅包含斜杠,可以轻松地将匹配项替换为下划线。