33

我想浏览我所有的源代码文件并将每次出现的地方都替换为k_Xyyyk_xyyy将第一个字母k_从大写转换为小写)。

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

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

4

4 回答 4

16

我刚刚利用 VIM 的强大功能解决了相同的任务(必须将 .net 接口转换为 java 接口):)

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

在这里,我们正在搜索(可选缩进,后跟返回类型,后跟空格),然后是(大写字母)。大括号正在捕获组。然后我们执行替换第一个捕获组\1 小写\L 第二个捕获组\2。

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

于 2012-07-24T16:31:56.383 回答
12

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

regex       : \bk_A
replacement : k_a 

regex       : \bk_B
replacement : k_b 

...

regex       : \bk_Z
replacement : k_z 
于 2010-02-12T13:28:04.827 回答
1

我需要对需要将字符串文字转换为小写的大量源代码执行此操作。我找到了一种使用 Notepad++ 和 Python Script 插件的方法,如此处所

于 2014-03-25T20:57:11.700 回答
0

(对我来说,因为我刚开始编程,所以想起来更有趣)使用 .$pattern_to_change将其从 ascii 转换为十进制ord()。将生成的 dec 数字加上 32。然后$desired_pattern使用chr().

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

我相信你可以手动转换 10 亿,因为这篇文章已经有 5 年的历史了,但是你可以使用 Sublime 在 5 分钟内完成。

真正有用的文本编辑器。

于 2013-11-09T01:22:24.927 回答