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

Regular expression: Changing part of a line starting with a character

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

@xxxxxx{yyy/zzz

并将其替换为

@xxxxxx{yyy_zzz

(xxxxxx,yyy和zzz没有/)

我可以想出以下从一行的开头开始并找到第一个 /

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

然后我可以用

改变这个
_

但这会在其中获取更多带有 / 的行,我想将它们集中在以 @ 开头的行上。我将不胜感激帮助。更具体地说,我在 Textmate 中执行此操作。

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

(?<=@.*?)\/

它的工作原理是在后面查找“@”符号,然后是任意数量的任意符号,最后是斜杠。匹配将只包含斜线,很容易用下划线替换匹配。

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

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

网站https://regex101.com/