我正在尝试将php字符串中的每个单词大写,但该函数未检测到紧跟一个括号的单词。如何才能使括号之后的单词大写?
例子:amharic(埃塞俄比亚)......阿姆哈拉语(埃塞俄比亚语)
(目前使用ucwords(),PHP显示Amharic(埃塞俄比亚))
答案 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);