Sublime Text 查找替换任意字符

Sublime Text 查找替换任意字符

有没有一种方法可以使用特殊字符进行查找和替换,从而使任何字符都可以位于其位置?

我的意思是说我有以下文本:

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

我想使用类似 (mds3a1.getI***().toString()); 的东西来替换,在初始 ( 之后替换上面所有行的结尾。

其中 * 可以等于任何字符。这样我就可以替换上面所有行的结尾,即使它们不一定完全相同。其中一行看起来像:

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

我在其他程序中看到过类似的功能,但我不太清楚这种行为的具体含义。

编辑: 最后我正在寻找正则表达式,正如@DavidPostill 在下面指出的那样。

为了完成我想要做的事情,我最终得到了以下结果:

find: (\(mds3a1.getJ)....+(().toString\(\)\);)
replace: 

这将使我保留直到第一行(但不包括第一行)的每一行文本(

对于任何想要在 Sublime Text 中使用正则表达式的人来说,这里是我发现的一个很好的资源。https://github.com/dmikalova/sublime-cheat-sheets/blob/master/cheat-sheets/Regular%20Expressions.cheatsheet

答案1

看来 MattDMo 的答案不是获得所需结果的正确模式。以下是我为更优雅的解决方案所做的工作:

打开 Sublime Text 2

粘贴块:

setI0100(mds3a1.getI0100().toString());
setI0200(mds3a1.getI0200().toString());
setI0300(mds3a1.getI0300().toString());
setI0400(mds3a1.getI0400().toString());
setI0500(mds3a1.getI0500().toString());
setI0600(mds3a1.getI0600().toString());
setI0700(mds3a1.getI0700().toString());
setI0800(mds3a1.getI0800().toString());
setI0900(mds3a1.getI0900().toString());
setI1100(mds3a1.getI1100().toString());
setI1200(mds3a1.getI1200().toString());
setI1300(mds3a1.getI1300().toString());

查找 > 替换 ( CTRL+ H)

启用正则表达式按钮(Alt+ R

找什么:\(.*

用。。。来代替: [这里没有字符]

按“全部替换”

完毕

结果就是你所要求的:

Before:
    setI0100(mds3a1.getI0100().toString());
After:
    setI0100

正则表达式细分:

\(匹配并退出(角色。

.匹配任意单个字符。

*匹配前一个字符 0 次或多次。

答案2

在“查找”对话框中打开正则表达式搜索,并使用以下模式:

^(.*?)(?=\()

它从行首开始 ( ^),然后捕获任意字符 ( (.*?)) 直到非捕获正向前瞻 ( (?=\())。

相关内容