正则表达式查找/替换

时间:2012-06-01 18:11:33

标签: regex eclipse replace

我正在尝试在java源文件上进行一些查找和替换。

目前,我的类名称无效(从自动命名不佳的工具导入):

public class [0-9]{2}[A-Za-z]+

我想在数字周围插入下划线,从而产生表格

的有效类名
public class [_][0-9]{2}[_][A-Za-z]+

然而,使用Eclipses查找和替换工具,使用正则表达式框检查查找和替换字符串不会按照我的意愿格式化输出。

需要

02ListOfValidAppIDs

并使其成为

[-][0-9]{2}[_][A-Za-z]+

而不是

_02_ListOfValidAppIDs

如何使正则表达式保留任意数字和文本,并将其插入替换字符串?

(编辑:作为一个注释,使用预览功能,我可以看到eclipse正确地找到了我想要替换的所有名称,而没有别的)

2 个答案:

答案 0 :(得分:3)

我不确定你需要的Regex的确切味道,但是这样的事情应该让你开始朝着正确的方向前进。

更新“查找”模式以使用捕获组:

(public class )([0-9]{2})([A-Za-z]+)

然后在替换中引用这些捕获:

\1_\2_\3

注意:某些版本的正则表达式会使用{}代替()来表示捕获的组,而某些版本将使用$1$2,{{1} }等,而不是使用$3

答案 1 :(得分:2)

在Eclipse的“查找/替换”对话框中,如果您使用

,这样可以正常工作
([0-9]+)([A-Za-z]+)

Find框和

_$1_$2

Replace with框中。

当然,也必须检查Regular expressions框。