帮助vim搜索/替换复杂的正则表达式

时间:2010-08-05 14:52:34

标签: regex vim

这是我想用正则表达式做的事情:2步:

(1)转换所选区域中的所有变量,如下所示:

$Sejour_deb_mois
$Info_pays

到:

$SejourDebMois
$InfoPays

(2)转换所选区域中的所有变量,如下所示:

$this->Sejour_deb_mois
$this->Info_pays

到:

$this->SejourDebMois
$this->InfoPays

而且我很确定这可以使用正则表达式来完成......但我无法弄清楚那两个做得好的人......

非常感谢任何帮助!

由于

Olivier Pons

1 个答案:

答案 0 :(得分:6)

对于上述两个例子,这应该可以胜任:

s/\(_\)\(.\)/\u\2/g

基本上,它会找到每个下划线和后面的字符,将它们与parens组合在一起。然后,它丢弃一个字符的下划线和大写字母。

如果您在视觉上选择了区域并按了:,整个表达式将如下所示:

:'<,'>s/\(_\)\(.\)/\u\2/g