【问题标题】:Formatting text as CamelCase in Visual Studio在 Visual Studio 中将文本格式化为 CamelCase
【发布时间】:2016-10-11 15:31:59
【问题描述】:

我想从这样的行中得到:

#define FACILITY_USERMODE_HYPERVISOR  53

到这样的一行,用于枚举:

zFacilityUsermodeHypervisor = FACILITY_USERMODE_HYPERVISOR,

一个快速的正则表达式替换成功了一半,有没有一种快速的方法来获得完整的结果?

Regex:   #define (FACILITY_\w+)\s+(\d+)
Replace: $1 = $1,

这给我留下了

FACILITY_USERMODE_HYPERVISOR = FACILITY_USERMODE_HYPERVISOR,

如何将第一部分转换为 CamelCase?

【问题讨论】:

    标签: regex visual-studio visual-studio-2013 replace camelcasing


    【解决方案1】:

    这对于不支持 \l / \u\L / \U ... \E 替换模式中的运算符的 VS S&R 来说绝对难以实现。

    我建议通过 Notepad++ 中的 3 个步骤来实现它:

    • 使用 #define (FACILITY_\w+)(?=\s+\d+) 正则表达式 (see demo) 复制您需要转换为 CaMeL 大小写的标识符。你的#define FACILITY_USERMODE_HYPERVISOR 53 会变成#define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53
    • #define 之后第一次出现标识符时应用CaMeL 大小写,并使用(?:#define\s+|(?!^)\G)\K_?([A-Za-z])([^\W_]*)_?(?=[\w\s]*%%%) 正则表达式和\u$1\L$2\E 替换。所以,#define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53 会变成#define FacilityUsermodeHypervisor %%% FACILITY_USERMODE_HYPERVISOR 53

    • 最后一步是获得所需的输出:删除不需要的内容并添加等号:使用 #define (Facility\w*)\s+%%%\s+(\w+)\s+\d+ 正则表达式和 z$1 = $2, 替换 (see demo)。

    【讨论】:

      猜你喜欢
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2011-02-06
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多