正则表达式将UPPER_CASE转换为kCamelCase

时间:2013-12-14 19:37:12

标签: regex sublimetext

目前,我的代码中的常量是大写的,并以下划线分隔,但我想将它们更改为驼峰大小写,前面加上“k”。 (例如:TICKS_PER_INCH - > kTicksPerInch)我可以使用什么正则表达式来执行此操作? (我正在使用Sublime Text。)

1 个答案:

答案 0 :(得分:0)

Sublime使用Boost PCRE library表示Perl兼容的正则表达式。通过该链接可以在将来帮助您。


您需要分两步完成此操作。要协助完成第二步,请通过Case Conversion安装Package Control插件。

首先,选择Find -> Replace...。在Find What:字段的左侧,确保选中前四个按钮 - 正则表达式 区分大小写 整个字 ,以及 Wrap 。在Replace With:字段的左侧,选择 突出显示匹配

现在是Find What:正则表达式。假设您没有单个大写字母的变量,则需要搜索(\b[A-Z_]+\b) \b 匹配字边界和 < em> [A-Z_]+ 匹配包含一个或多个大写字母和下划线的字符串。围绕括号中的所有内容将整个模式分配给单个匹配变量,稍后我们将使用它。要进行一些质量控制,在更换任何内容之前点击Find All按钮并滚动代码以确保所选的所有内容都符合您的要求。

一旦您对所有内容感到满意,替换正则表达式很简单:K_$1。这会将K_添加到每个匹配的开头(匹配变量$1),因此FOO_BAR变为K_FOO_BAR

到第二部分 - 骆驼套管。转到Find -> Find...并使用(\b[A-Z_]+\b)和之前相同的选项( 正则表达式 区分大小写 整个字 Wrap ),然后点击Find All全选你的常数。仔细检查您是否已选择了您想要的所有内容而没有选择任何内容,然后转到Edit -> Convert Case -> camelCaseK_FOO_BAR应该成为kFooBar


如果你知道你应该使用哪种口味,并且你有一个很好的参考,正如上面链接的那样,正则表达并不是那么难。祝你好运!