正则表达式通过大写来打破字符串

时间:2011-12-22 12:33:10

标签: php regex

所以我有一个正则表达式,它打破了一个字符串,假定camelCase或PascalCase并将其转换为lowercase_with_underscores。那个正则表达式看起来像这样(php):

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

我想修改它,以便它能够分解字符串,它假设一行大写的行作为一个单元。例如,我将能够分解以下字符串:

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

有关如何修改正则表达式的任何建议吗?

1 个答案:

答案 0 :(得分:2)

怎么样:

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