2016-06-10 65 views
1

我想從線路像這樣得到:格式化文本駝峯在Visual Studio

#define FACILITY_USERMODE_HYPERVISOR 53 

到線路像這樣,在一個枚舉使用:

zFacilityUsermodeHypervisor = FACILITY_USERMODE_HYPERVISOR, 

快速正則表達式替換的一半技巧,有沒有一種快速的方法來獲得完整的結果?

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

這給我留下了

FACILITY_USERMODE_HYPERVISOR = FACILITY_USERMODE_HYPERVISOR, 

我將如何轉換的第一部分,以駝峯?

回答

1

這絕對是太困難與VS取得成就& [R不支持\l/\u\L/\U ... \E運營商在替換模式。

我建議用在記事本++3個步驟acheiving它:

  • 複製,你需要把駱駝情況下與#define (FACILITY_\w+)(?=\s+\d+)正則表達式(see demo)的標識符。您的#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)。