我想查看我的所有源代码文件,并将k_Xyyy
的每次出现替换为k_xyyy
(将k_
之后的第一个字母从大写切换为小写)。< / p>
我正在使用eclipse对话框来搜索和替换多个文件。现在我有正则表达式\bk_([A-Z])
。
如何指定正则表达式的替换字符串?
答案 0 :(得分: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中手工做同样的事情要快得多。
答案 1 :(得分:11)
这是不可能的。要么使用Eclipse的重新分解功能,要么一次更换一个:
regex : \bk_A
replacement : k_a
regex : \bk_B
replacement : k_b
...
regex : \bk_Z
replacement : k_z
答案 2 :(得分:1)
我需要为大量的源代码执行此操作,其中字符串文字需要转换为小写。我找到了一种使用Notepad ++和Python Script插件的方法,使用here。
答案 3 :(得分:0)
(对我来说,因为我刚刚开始编程,所以考虑一下会更有趣)
取$pattern_to_change
并使用ord()
将其从ascii转换为十进制。获取生成的dec数并添加32.然后使用$desired_pattern
将chr()
转换回ascii。
或者只需下载SublimeText
并使用其查找和替换功能查找所有匹配项并将其替换为差异文本(Sublime也具有正则表达式)。
我确信你可以手动转换10亿,因为这篇文章就像5岁了,但是你可以用Sublime在5分钟内完成这个。
非常有用的文字编辑器。