2013-03-14 99 views
1

我有以下行正則表達式轉換駝峯標識符UPPER_CASE

GetAuthServerList 
GetAuthServerConfiguration 
AddAuthServer 

我必須將它們轉換爲

GET_AUTH_SERVER_LIST 
GET_AUTH_SERVER_CONFIGURATION 

等。

我試着在崇高的文本編輯器\1_更換([A-Z][a-z]+),但它正在取代過去的搜索也。我如何跳過最後一場比賽?

我可以同時插入_並將小寫字母換成大寫嗎?

+0

什麼語言/工具? – 2013-03-14 12:50:21

+0

僅僅是一個簡單的昇華2 – Kaunteya 2013-03-14 12:53:54

回答

3

查找內容:([a-z])([A-Z])
替換:\1_\2
您可選擇轉換選擇在崇高的文本爲大寫。

+0

哦,看起來很明顯。沒想到那個.. – Kaunteya 2013-03-14 13:08:13

0

使用負先行稍加修改應該幫助

([A-Z][a-z]+)(?!$) 
+0

這是匹配行的最後一個單詞,但跳過最後一個字母,所以它會在第二個最後位置插入下劃線。 – Kaunteya 2013-03-14 12:53:15

2

我沒有做崇高的安裝,但試試這個:

[a-z](?=[A-Z]) 

&_

更換
replace ([a-z])(?=[A-Z]) with \1_ 

VIM這將是:

%s/\v[a-z]([A-Z])@=/&_/g