在PHP中有以下字符串:
this-is_a-test
我想把它改成这样:
thisIsATest
所以字符串可以包含任意数量的破折号或下划线。我需要一个正则表达式函数来将字符串转换为 Camel 大小写字符串。如何做到这一点?
ne5o7dgx1#
使用preg_replace_callback:
preg_replace_callback
$string = 'this-is_a-test'; function toUpper($matches) { return strtoupper($matches[1]); } echo preg_replace_callback('/[-_](.)/', 'toUpper', $string); // thisIsATest
DEMO。
ssm49v7z2#
不,你不需要正则表达式。
str_replace()
ucwords()
你可以使用正则表达式,但这不是必需的。
bpsygsoo3#
您还可以使用lcfirst、str_replace和ucwords函数。示例:lcfirst(str_replace('-', '', ucwords('my-slug-string', '-')))
lcfirst(str_replace('-', '', ucwords('my-slug-string', '-')))
3条答案
按热度按时间ne5o7dgx1#
使用
preg_replace_callback
:DEMO。
ssm49v7z2#
不,你不需要正则表达式。
str_replace()
将标点符号替换为空格。ucwords()
为每个单词的首字母大写。str_replace()
再次去掉空格。你可以使用正则表达式,但这不是必需的。
bpsygsoo3#
您还可以使用lcfirst、str_replace和ucwords函数。
示例:
lcfirst(str_replace('-', '', ucwords('my-slug-string', '-')))