如何使用Visual Studio Code中的正则表达式将小写更改为upper

时间:2017-08-02 12:59:00

标签: regex visual-studio-code

我正在使用Visual Studio Code 1.14.2,我试图将变量名称更改为camelCase,例如。 public class PaymentItem { public string Name { get; set; } public decimal Amount { get; set; } public bool IsSelected { get; set; } } set_nominal_wavelength

正则表达式:setNominalWavelength

替换:_([a-z])

不起作用。知道如何实现吗?

3 个答案:

答案 0 :(得分:16)

有一种解决方法:

  1. 打开替换对话框并输入正则表达式:_([a-z])
  2. 然后将焦点移至编辑区并按Ctrl + F2(全部修改...)
  3. 然后更改选择的大小写(Ctrl + P> upper)
  4. 然后按向左箭头键并按Delete键

答案 1 :(得分:2)

您可以使用支持更改案例运算符的其他工具,例如Notepad ++,sed,R(gsubperl=TRUE),但VS Code不支持替换模式中的这些运算符

请参阅this feature request on GitHub

  

这很酷。这超出了javascript当前支持的范围。

     

我们需要提供自己的高级替换引擎来支持这些情况。

答案 2 :(得分:1)

2017年10月,片段变量转换已添加到vscode中,请参见September 2017 release notes, snippet transforms

到那时为止,您可以很容易地做到这一点,但是您必须设置一个简单的键绑定:

{
  "key": "alt+-",
  "command": "editor.action.insertSnippet",
  "args": {
    "snippet": "${TM_SELECTED_TEXT/_([a-z])/${1:/capitalize}/g}"
  }
}
  1. 在您的查找面板中输入_([a-z])
  2. Ctrl - Shift - L 选择所有匹配项,并且
  3. 从上面的示例中触发您选择的键绑定。

无需更改焦点。

demo of camelCase snippet transform


不幸的是,截至2019年6月,Wiktor case conversions in replace所引用的问题没有任何动静。