2015-06-17 36 views

回答

1

在這裏你去,,

>>> s = "abcdEfgh" 
>>> re.sub(r'\B[A-Z]\B', lambda x: '_' + x.group().lower(), s) 
'abcd_efgh' 
>>> re.sub(r'\B[A-Z]\B', lambda x: '_' + x.group().lower(), 'AbcdEfgH') 
'Abcd_efgH' 

\B兩個字字符或兩個非單詞字符之間的匹配,因爲您輸入只包含文字字符,上述正則表達式\B[A-Z]\B它必須存在於大寫字母匹配中間。這不會觸及在開始或結束時存在的大寫字母。

編輯:

>>> re.sub(r'\B[A-Z]', lambda x: '_' + x.group().lower() , re.sub(r'^[A-Z]', lambda m: m.group().lower(), 'AbcdEfgh')) 
'abcd_efgh' 
+0

謝謝。第一個字符也是上面的。以後再編輯它的道歉。 – user3261251

+0

你是一個問中性的人。 –

+0

https://shar.es/12BzTW似乎無法正常工作 – user3261251

相關問題