将字符串的第一个字母大写(前面带有特殊字符)-PHP

将字符串的第一个字母大写(前面带有特殊字符)-PHP,php,regex,preg-match,Php,Regex,Preg Match,我想大写一个字符串,比如: ¿"hello"? 我希望我的函数返回 ¿"Hello"? 我试过regex和preg_match,但运气不好。。。 这是我之前的问题,与此相关: 谢谢大家! 尝试ucfirst功能 这样的任务不需要正则表达式 样品 $foo = 'hello world!'; $foo = ucfirst($foo); // Hello world! 您可以使用以下方法进行操作: 使用上述ascii时间的preg_replace_回调,但与unico

我想大写一个字符串,比如:

¿"hello"?
我希望我的函数返回

¿"Hello"?
我试过regex和preg_match,但运气不好。。。 这是我之前的问题,与此相关:


谢谢大家!

尝试
ucfirst
功能

这样的任务不需要正则表达式

样品

$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!
您可以使用以下方法进行操作:


使用上述ascii时间的preg_replace_回调,但与unicode兼容:

echo preg_replace_callback('/^(\PL*)(\pL)/u', function($matches){
    return $matches[1] . mb_strtoupper($matches[2],'UTF-8');
}, '¿"éllo"?'),"\n";
输出:

¿"Éllo"?

这接近解决方案了,现在我想我在正则表达式上遇到了问题,因为当我的字符串是'sta prueba'时,这个函数返回'sta prueba',但预期的是'sta prueba',这里是发布的最终解决方案:
¿"Éllo"?