正则表达式打破由字符串分割字符串
问题描述:
所以我有一个正则表达式,它分开一个字符串,假设驼峰或PascalCase并将其转换为lowercase_with_underscores。该正则表达式看起来像这样(PHP):正则表达式打破由字符串分割字符串
strtolower(preg_replace('/(?!^)[[:upper:]]/','_\0', $string));
我想修改此,使其能够也打破了它假定大写的串在一排作为一个单元的字符串。例如,我将能够向上突破以下字符串:
'GUID' => 'guid'
'SOME_VALUES' => 'some_value'
'someThingELSE' => 'some_thing_else'
关于如何修改正则表达式来做到这一点有什么建议?
答
如何:
$result = strtolower(preg_replace('/([a-z])([A-Z])/', '$1_$2', $string));
那如何利用像'THISisODD' – luastoned 2011-12-22 12:42:57
@luastoned护理:像'GUID'这将是全部小写(即'thisisodd') - >'guid' – Toto 2011-12-22 12:45:35
不真的:'thisis_odd' - 它会得到'someThingELSE'。 – luastoned 2011-12-22 12:48:42