4

次のような文字列を大文字にしたいと思います。

¿"hello"?

関数を返したい

¿"Hello"?

regex と preg_match を試してみましたが、うまくいきませんでした...これは、これに関連する以前の質問です

皆さん、ありがとうございました!

4

3 に答える 3

2

上記のASCII時間のようにpreg_replace_callbackを使用しますが、ユニコードと互換性があります。

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

出力:

¿"Éllo"?
于 2012-06-21T09:27:12.350 に答える
1

preg_replace_callbackを使用して実行できます。

preg_replace_callback('/^([^a-z]*)([a-z])/i', function($matches){
    return $matches[1] . strtoupper($matches[2]);
}, '¿"hello"?');

// ¿"Hello"?
于 2012-06-20T14:59:27.790 に答える
-1

ucfirst関数http://php.net/manual/en/function.ucfirst.phpを試す

そのようなタスクには正規表現は必要ありません

サンプル

$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!
于 2012-06-20T14:56:03.747 に答える