1

我正在尝试对 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 正确地找到了我希望替换的所有名称,仅此而已)

4

2 回答 2

3

我不确定您需要的 Regex 的确切风格,但是这样的事情应该可以让您朝着正确的方向开始。

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

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

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

\1_\2_\3

注意:一些正则表达式将使用{}代替()来表示捕获的组,一些风格将使用$1, $2,$3等作为参考而不是使用\#.

于 2012-06-01T18:20:20.637 回答
2

在 Eclipse 的 Find/Replace 对话框中,如果您使用

([0-9]+)([A-Za-z]+)

Find盒子里和

_$1_$2

Replace with盒子里。

当然,Regular expressions也必须选中该框。

于 2012-06-01T18:31:52.360 回答