如何在TextMate的查找对话框中使用正则表达式进行搜索替换?

eps*_*on8 1 regex textmate macos

我想更换所有

\caption(.1..)
\caption(.2.)
\caption(.3..)
\caption(.4..)
Run Code Online (Sandbox Code Playgroud)

经过

\caption{}
Run Code Online (Sandbox Code Playgroud)

我应该在搜索框中输入什么?

slh*_*hck 6

你想换

\\caption\(.*\)
Run Code Online (Sandbox Code Playgroud)

\caption{}
Run Code Online (Sandbox Code Playgroud)

就如此容易。

您需要将反斜杠\和括号()转义,因为它们在正则表达式中具有特殊含义。该.*部分多次匹配任何字符。这将匹配..2.子字符串。


如果您真的想将括号交换为花括号,您可以通过()在要匹配的字符串周围添加来添加捕获组,然后在替换中重用它:

\\caption\((.*)\)
Run Code Online (Sandbox Code Playgroud)

\caption{$1}
Run Code Online (Sandbox Code Playgroud)

您的第一个“标题”的内容在我们$1再次访问的第一个寄存器中捕获。

请阅读有关 TextMate 正则表达式的手册了解更多信息:TextMate 手册 » 正则表达式