2011-12-22 266 views
0

所以我有一個正則表達式,它分開一個字符串,假設駝峯或PascalCase並將其轉換爲lowercase_with_underscores。該正則表達式看起來像這樣(PHP):正則表達式打破由字符串分割字符串

strtolower(preg_replace('/(?!^)[[:upper:]]/','_\0', $string)); 

我想修改此,使其能夠也打破了它假定大寫的串在一排作爲一個單元的字符串。例如,我將能夠向上突破以下字符串:

'GUID' => 'guid' 
'SOME_VALUES' => 'some_value' 
'someThingELSE' => 'some_thing_else' 

關於如何修改正則表達式來做到這一點有什麼建議?

回答

2

如何:

$result = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $string)); 
+0

那如何利用像'THISisODD' – luastoned 2011-12-22 12:42:57

+0

@luastoned護理:像'GUID'這將是全部小寫(即'thisisodd') - >'guid' – Toto 2011-12-22 12:45:35

+0

不真的:'thisis_odd' - 它會得到'someThingELSE'。 – luastoned 2011-12-22 12:48:42

相關問題