Eclipse,正则表达式搜索和替换

时间:2009-09-03 11:00:10

标签: regex eclipse replace

在eclipse中,在执行正则表达式搜索和替换时,是否可以将匹配的搜索字符串用作替换字符串的一部分?

基本上,我想替换所有出现的

variableName.someMethod()

使用:

((TypeName)variableName.someMethod())

其中 variableName 可以是任何变量名。

sed 中,我可以使用以下内容:

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

即,& 表示匹配的搜索字符串。 Eclipse中有类似的东西吗?

谢谢!

5 个答案:

答案 0 :(得分:214)

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

所以:

  

搜索:(\w+\.someMethod\(\))

     

替换:((TypeName)$1)

提示:文本框中的 CTRL + Space 为您提供了正则表达式写作的各种建议。

答案 1 :(得分:6)

使用......
search =(^。* import)(。*)(\(。* \):)
replace = $ 1 $ 2

......替换......

from checks import checklist(_list):

...与...

from checks import checklist



正则表达式中的块由括号(其前面没有" \")描述

(^。* import)从检查导入"中找到"并将其加载到$ 1(eclipse从1开始计数)

(。*)找到下一个"一切"直到下一次遇到"("并将其加载到$ 2。$ 2停止在"("因为下一部分(见下面的下一行))

(\(。* \):)说"在第一次遇到"("在开始块$ 2后...停止块$ 2并开始$ 3. $ 3加载" ('任何文字'):"或者,在示例中,"(_ list):"

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



Screenshot

答案 2 :(得分:4)

NomeN已正确回答,但这个答案对像我这样的初学者来说并没有多大用处,因为我们还有其他问题要解决,我们也不知道如何在那里使用RegEx 。所以我正在为此添加一些解释。答案是

  

搜索:(\ w + \ .someMethod \(\ _))

     

替换:((TypeName)$ 1)

下面:

在搜索中:

  • 第一个也是最后一个'('')'描述正则表达式中的一个组

  • ' \ W'描绘单词(字母数字+下划线)

  • ' +'描绘了一个或多个(即一个或多个字母数字+下划线)

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

  • '的someMethod'给出了要搜索的内容。

  • 两个括号'(',')'与逃脱字符一起给出 因为它们是用于描绘群体的特殊角色 (我们将在下一点讨论小组)

取代:

  • 给出' ((TypeName)$ 1)',这里$ 1描述了 组。这就是第一个中包含的所有字符 和最后一个括号'(',')'在搜索栏中

  • 同时确保您已检查了正则表达式'选项 找一个替换盒

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

答案 3 :(得分:2)

至少在STS(SpringSource工具套件)中,组从0开始编号,因此替换字符串将是

replace: ((TypeName)$0)

答案 4 :(得分:0)

对于某人需要解释和如何在eclipse上使用regx的示例,希望这将被发现有用。这是我的问题。

enter image description here

我想重命名

/download.mp4^lecture_id=271

/271.mp4

可能有很多这些。

你应该怎么做。

enter image description here

然后点击查找/替换按钮