目前,我的代码中的常量是大写的,并以下划线分隔,但我想将它们更改为驼峰大小写,前面加上“k”。 (例如:TICKS_PER_INCH - > kTicksPerInch)我可以使用什么正则表达式来执行此操作? (我正在使用Sublime Text。)
答案 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 -> camelCase
,K_FOO_BAR
应该成为kFooBar
。
如果你知道你应该使用哪种口味,并且你有一个很好的参考,正如上面链接的那样,正则表达并不是那么难。祝你好运!