स्ट्रिंग के पहले अक्षर को कैपिटल करें (विशेष वर्णों से पहले) - PHP - php, regex, preg-match

मैं एक स्ट्रिंग को कैपिटलाइज़ करना चाहता हूँ जैसे:

¿"hello"?

मैं चाहता हूं कि मेरा फंक्शन वापस लौटे

¿"Hello"?

मैं "regex और preg_match के साथ कोशिश की, कोई भाग्य नहीं ... यहाँ यह मेरा पिछला प्रश्न है, इस एक से संबंधित: "प्रीग_मैच दो पात्रों से मेल खा रहा है जब इसे केवल एक से मेल खाना चाहिए"

आप सभी को धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 1

आप इसका उपयोग कर सकते हैं preg_replace_callback:

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

// ¿"Hello"?

जवाब के लिए 2 № 2

उपर्युक्त के रूप में पूर्व-समय के अनुसार preg_replace_callback का उपयोग करना, लेकिन यूनिकोड संगत:

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

उत्पादन:

¿"Éllo"?

उत्तर № 3 के लिए -1

प्रयत्न ucfirst समारोह http://php.net/manual/en/function.ucfirst.php

ऐसे कार्य के लिए किसी रेगेक्स की आवश्यकता नहीं है

नमूना

$foo = "hello world!";
$foo = ucfirst($foo);             // Hello world!

संबंधित सवाल
सबसे लोकप्रिय