Я хотел бы сделать заглавной первую букву строки, которая может иметь специальные символы (по этой причине ucfirst здесь недействителен). У меня есть следующий код:
$string = 'ésta';
$pattern = '/^([^a-z]*)([a-z])/i';
$callback_fn = 'process';
echo preg_replace_callback($pattern, $callback_fn, $string);
function process($matches){
return $matches[1].strtoupper($matches[2]);
}
который возвращает 'éSta', но ожидалось 'Ésta'... Я думаю, что моя проблема в шаблоне, который я использую, но я сделал разные комбинации (например, $pattern = '/\pL/u'
), но я не нашел хорошего регулярного выражения.