首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将every _ character替换为_ character后面的大写字母

将every _ character替换为_ character后面的大写字母
EN

Stack Overflow用户
提问于 2012-12-06 05:25:25
回答 3查看 160关注 0票数 2

我该如何着手解决这个问题:

我想像这样转换字符串:

代码语言:javascript
运行
复制
some_words => someWords
some_more_text => someModeText

希望你明白了,我需要用X替换所有的_x。

我现在有了这样的东西:

代码语言:javascript
运行
复制
$string = 'some_words';
$new = preg_replace('/_([a-z])/', strtoupper('$1'), $string);

但这是行不通的。我可以在preg_replace函数中使用内置的PHP函数吗?

我该如何解决这个问题?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2012-12-06 05:28:38

可以使用preg_replace_callback(),如下所示:

代码语言:javascript
运行
复制
$new = preg_replace_callback('/_([a-z])/', function( $match) { 
    return strtoupper( $match[1]);
}, $string);
票数 5
EN

Stack Overflow用户

发布于 2012-12-06 05:54:15

或者,如果您不想使用正则表达式,则可以简单地使用explode/implode

代码语言:javascript
运行
复制
$string = 'some_words';
$string_array = explode('_', $string);
for ($i = 1; $i < count($string_array); $i++) {
    $string_array[$i] = ucfirst($string_array[$i]);
}
$string_camel_case = implode('', $string_array);
票数 1
EN

Stack Overflow用户

发布于 2012-12-06 05:58:31

man page on ucwords中的注释

代码语言:javascript
运行
复制
$string = 'some_words';
$new = preg_replace('/_(.?)/e',"strtoupper('$1')",$string); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13732738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档