将文本格式化为 Visual Studio 中的 CamelCase
Formatting text as CamelCase in Visual Studio
我想从这样的行中得到:
#define FACILITY_USERMODE_HYPERVISOR 53
到这样一行,用于枚举:
zFacilityUsermodeHypervisor = FACILITY_USERMODE_HYPERVISOR,
快速替换正则表达式就成功了一半,有没有快速获得完整结果的方法?
Regex: #define (FACILITY_\w+)\s+(\d+)
Replace: = ,
这让我
FACILITY_USERMODE_HYPERVISOR = FACILITY_USERMODE_HYPERVISOR,
如何将第一部分转换为 CamelCase?
用不支持\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\s+|(?!^)\G)\K_?([A-Za-z])([^\W_]*)_?(?=[\w\s]*%%%)
正则表达式和 \u\L\E
替换,在 #define
之后第一次出现标识符时应用 CaMeL 大小写。所以,#define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53
会变成 #define FacilityUsermodeHypervisor %%% FACILITY_USERMODE_HYPERVISOR 53
.
- 最后一步只是获得所需的输出:删除不需要的内容并添加等号:使用
#define (Facility\w*)\s+%%%\s+(\w+)\s+\d+
正则表达式和 z = ,
替换 (see demo)。
我想从这样的行中得到:
#define FACILITY_USERMODE_HYPERVISOR 53
到这样一行,用于枚举:
zFacilityUsermodeHypervisor = FACILITY_USERMODE_HYPERVISOR,
快速替换正则表达式就成功了一半,有没有快速获得完整结果的方法?
Regex: #define (FACILITY_\w+)\s+(\d+)
Replace: = ,
这让我
FACILITY_USERMODE_HYPERVISOR = FACILITY_USERMODE_HYPERVISOR,
如何将第一部分转换为 CamelCase?
用不支持\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\s+|(?!^)\G)\K_?([A-Za-z])([^\W_]*)_?(?=[\w\s]*%%%)
正则表达式和\u\L\E
替换,在#define
之后第一次出现标识符时应用 CaMeL 大小写。所以,#define FACILITY_USERMODE_HYPERVISOR %%% FACILITY_USERMODE_HYPERVISOR 53
会变成#define FacilityUsermodeHypervisor %%% FACILITY_USERMODE_HYPERVISOR 53
.
- 最后一步只是获得所需的输出:删除不需要的内容并添加等号:使用
#define (Facility\w*)\s+%%%\s+(\w+)\s+\d+
正则表达式和z = ,
替换 (see demo)。