在Visual Studio中将文本格式设置为CamelCase

时间:2016-06-10 15:34:22

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

我想从这样的行中得到:

#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?

1 个答案:

答案 0 :(得分: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 (?:#define\s+|(?!^)\G)\K_?([A-Za-z])([^\W_]*)_?(?=[\w\s]*%%%)正则表达式和\u$1\L$2\E替换之后,首次出现标识符时应用CaMeL案例。因此,#define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53将变为#define FacilityUsermodeHypervisor %%% FACILITY_USERMODE_HYPERVISOR 53

enter image description here

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