![](/img/trans.png)
[英]Add min char and a way to find words with first letter capitalized to a regex
[英]Turn first character of str capitalized but ignore one or two letter words
我是新手,這對我來說很難。
我在變量中有一個文本:
$bio = 'text, text, tex ...';
我可以使用ucfirst php函數使文本中的單詞以大寫字母開頭。
問題是我不希望將帶有一個,兩個或三個字母的單詞大寫,因為它看起來不專業。
重要提示:但我也想將字母“ I”大寫,因為這是正確的英語語法。
像這樣的文本:這是沒有ucfirst函數的文本,我認為它需要大寫
看起來像:這是沒有Ucfirst功能的文本, 我認為需要大寫
有任何想法嗎?
這將大寫4個或更多字母的單詞(英文字母序列):
$bio = preg_replace_callback('/[a-z]{4,}|\bi\b/i', function($match){
return ucfirst($match[0]);
}, $bio);
對於5.3之前的PHP版本:
$bio = preg_replace_callback('/[a-z]{4,}|\bi\b/i',
create_function('$match', 'return ucfirst($match[0]);'), $bio);
它將保留任何較短的詞,例如I
和add
,並大寫i
。
我會使用正則表達式。 如果不想,可以使用split,然后遍歷令牌並使用一堆if-else,但是regex比較涼爽。 ;)
這里有一個非常相似的問題:正則表達式每個單詞的首字母大寫,也要在破折號之后加上特殊字符
嗯?
$bio_x = explode(" ",$bio); if(strlen($bio_x[0]) > 3) $bio = ucfirst($bio); $bio = str_replace(" i "," I ",$bio);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.