Php在括号后大写单词

时间:2013-03-29 01:30:39

标签: php

我正在尝试将php字符串中的每个单词大写,但该函数未检测到紧跟一个括号的单词。如何才能使括号之后的单词大写?

例子:amharic(埃塞俄比亚)......阿姆哈拉语(埃塞俄比亚语)

(目前使用ucwords(),PHP显示Amharic(埃塞俄比亚))

3 个答案:

答案 0 :(得分:1)

以下功能用于将括号中的单词转换为括号后的大写

    function ucWordWithBracket($edit){
        $new_word = str_replace("(","( ",$edit);
        $temp = ucwords($new_word);
        $new_word = str_replace("( ","(",$temp);
        return $new_word;
    }

ucWordWithBracket(amharic(ethiopian))

功能输出是“Amharic(Ethiopian)”;

答案 1 :(得分:0)

您应该能够使用preg_replace(http://php.net/manual/en/function.preg-replace.php)和正则表达式(例如/[A-Z][a-zA-Z]*/或类似代码)解决此问题。

答案 2 :(得分:0)

对于其他需要围绕其他字符标题的人,包括破折号,括号和圆括号。您可以使用带有preg_replace_callback的正则表达式来捕获用短划线分割的单词,或者以不在字母表中的字符开头。

/** Capitalize first letter if string is only one word **/
    $STR = ucwords(strtolower($STR));

/** Correct Title Case for words with non-alphabet charcters ex. Screw-Washer **/
    $STR = preg_replace_callback('/([A-Z]*)([^A-Z]+)([A-Z]+)/i', 
        function ($matches) {
            $return = ucwords(strtolower($matches[1])).$matches[2].ucwords(strtolower($matches[3]));
            return $return;
        }, $STR);