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