php – pre_replace一个字符串,用于大写下划线后面的每个单词
发布时间:2020-12-13 21:49:28 所属栏目:PHP教程 来源:网络整理
导读:这是一个示例字符串: hello_world_again 所以它将被转换为: HelloWorldAgain 所以它应该能够删除下划线并将下一个字母大写.第一个字母也应该大写.我发现了这个:preg_replace(‘/(?lt ;!)(?!^)[A-Z] /','_ $0',$val) 但现在我想扭转这个过程.非常感谢!
这是一个示例字符串:
hello_world_again 所以它将被转换为: 所以它应该能够删除下划线并将下一个字母大写.第一个字母也应该大写.我发现了这个:preg_replace(‘/(?< ;!)(?<!^)[A-Z] /','_ $0',$val) 但现在我想扭转这个过程.非常感谢!谢谢! 解决方法
单独的正则表达式在这里不起作用.但是,您可以使用
preg_replace_callback :
$val = 'hello_world_again'; function match_toupper($m) { return strtoupper($m[1]); } $val = preg_replace_callback('/(?:^|_)([a-z])/','match_toupper',$val); echo $val; // HelloWorldAgain 在PHP 5.3或更高版本中,也可以使用anonymous function: $val = 'hello_world_again'; $val = preg_replace_callback('/(?:^|_)([a-z])/',function ($m) { return strtoupper($m[1]); },$val); echo $val; // HelloWorldAgain 此外,如果您忽略有关 $val = 'hello_world_again'; $val = preg_replace('/(?:^|_)([a-z])/e','strtoupper($1)',$val); echo $val; // HelloWorldAgain 这是另一种完全避免使用正则表达式的解决方案: $val = 'hello_world_again'; $val = implode('',array_map(ucfirst,explode('_',$val))); echo $val; // HelloWorldAgain (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |