如何在Eclipse中使用正则表达式将大写字母替换为小写字母?

33

我希望对我的所有源代码文件进行检查,并将每个出现的 k_Xyyy 替换为 k_xyyy (将 k_ 后的第一个字母从大写改为小写)。

我正在使用 Eclipse 对话框来搜索和替换多个文件。目前,我已经有了正则表达式 \bk_([A-Z])

我如何指定该正则表达式的替换字符串?


你不能使用Eclipse的重构功能来完成这个吗? - Bart Kiers
每当我从带有列名前缀的表中生成实体时,我都需要定期使用它。 - chinto
4个回答

16

我刚刚解决了同样的任务(需要将.NET接口转换为Java接口),利用了VIM的强大功能:)

void DoMethod1 -> void doMethod1
Foo PerformMethod2 -> Foo performMethod2
:%s/\(^\s*\w\+\s\+\)\([A-Z]\)/\1\L\2/g

这里我们正在搜索(可选缩进后跟返回类型,后跟空格),然后跟大写字母。花括号是捕获组。然后我们首先使用第一个捕获组\1,然后将第二个捕获组\2转换为小写。

当然,这需要您在Vim中打开文件,但无论如何,这比在Eclipse中手动执行相同的操作要快得多。


12

这是不可能的。要么使用Eclipse的重构功能,要么逐个替换它们:

regex       : \bk_A
replacement : k_a 

regex       : \bk_B
replacement : k_b 

...

regex       : \bk_Z
replacement : k_z 

1

我需要为一大块源代码执行字符串小写转换操作。我使用了Notepad++和Python Script插件,方法参见这里


8
在Notepad++中,您可以在替换字符串中使用\L$1\E来将第一个匹配组转换为小写字母。同样的方法也适用于\U...\E 来转换为大写字母。 - fuemf5

0

对于我来说,由于我刚开始学习编程,这更有趣。

$pattern_to_change并使用ord()将其从ASCII转换为十进制。取得的十进制数加上32。然后使用chr()$desired_pattern转换回ASCII。

或者只需下载SublimeText并使用其查找和替换功能查找所有出现的内容,并用不同的文本替换它们(Sublime也具有正则表达式)。

我确定你可以手动将十亿进行转换,因为这篇文章已经有5年了,但是你可以在5分钟内使用Sublime完成此操作。

真正有用的文本编辑器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接