Eclipse,正则expression式search和replace

在eclipse中,执行正则expression式search和replace时,是否可以使用匹配的searchstring作为replacestring的一部分?

基本上,我想replace所有的事件

variableName.someMethod() 

有:

 ((TypeName)variableName.someMethod()) 

其中variableName可以是任何variables名称。

sed我可以使用像这样的东西:

 s/[a-zA-Z]+\.someMethod\(\)/((TypeName)&)/g 

即, 代表匹配的searchstring。 在Eclipse中有类似的东西吗?

谢谢!

是的,“()”捕获一个组。 你可以用$ i再次使用它,其中我是第i个捕获组。

所以:

 search: (\w+\.someMethod\(\)) replace: ((TypeName)$1) 

提示:文本框中的CTRL +空格为正则expression式写作提供了各种build议。 (恐怕向下键,要下载build议列表,删除文本框中的input。刺激小错误)

使用…
search =(^。* import)(。*)(\(。* \):)
取代= $ 1 $ 2

…取代…

 from checks import checklist(_list): 

…与…

 from checks import checklist 

正则expression式中的块用圆括号(前面没有“\”)表示

(^。* import)find“from checks import”并加载到$ 1(eclipse从1开始计数)

(。*)find下一个“everything”,直到遇到下一个“(”并加载到$ 2。$ 2停在“(”因为下一个部分(见下一行)

(\(。* \):)说:“在第一次遇到”(“之后开始块$ 2 …停止块$ 2并开始$ 3。$ 3获取加载”(“任何文本”):“或,在例如,“(_list):”

然后在replace中,只需将$ 1 $ 2replace为前两个的所有三个块即可。

截图

至less在STS(SpringSource工具套件)组编号从0开始编号,所以replacestring将是

 replace: ((TypeName)$0) 

NomeN已经正确回答了,但是对于像我这样的初学者来说,这个答案不会有什么用处,因为我们还有另外一个问题需要解决,而且我们不知道如何在那里使用RegEx。 所以我给这个增加了一些解释。 答案是

search:(\ w + \。someMethod \(\))

replace:((TypeName)$ 1)

这里:

正在search:

  • 第一个和最后一个('')'描述了一个正则expression式的组

  • '\ w'表示单词(字母数字+下划线)

  • “+”表示一个或多个(即一个或多个字母数字+下划线)

  • '' 是描述任何字符的特殊字符(即+表示一个或多个任何字符)。 因为这是一个特殊的字符来描绘一个'。' 我们应该给它一个转义字符,即'。'

  • “someMethod”被给予,因为它被搜查。

  • 两个括号'(',')'和转义字符一起给出,因为它们是用来描述一个组的特殊字符(我们将在下一点讨论组)

代替:

  • 它被赋予' ((TypeName)$ 1) ',这里$ 1描述了这个组。 这是所有在search字段中的第一个和最后一个括号“(',')”内的字符

  • 另外请确保您已经在findreplace框中检查了“正则expression式”选项

有关RegEx的更多信息,请访问http://regexr.com/

对于有人需要解释和如何在日食上使用regx的例子,希望这将是有用的。 这是我的问题。

在这里输入图像说明

我想重命名

 /download.mp4^lecture_id=271 

 /271.mp4 

而且可以有很多这些。

你应该如何做到这一点。

在这里输入图像说明

然后点击查找/replacebutton