2010-09-30 53 views
-1

我需要一個正則表達式來檢查一個字符串,它有兩個以上的符號長度,第一個符號應該是字母,最後一個符號應該是'_'。php正則表達式檢查一個字符串

而我怎樣才能大寫只有第一個符號? 謝謝。

+3

請閱讀文檔。 – cweiske 2010-09-30 13:04:46

+0

我知道常見的正則表達式規則。但我不能團結他們。 – pltvs 2010-09-30 14:18:46

+0

cweiske可能意味着(不要把話放在他/她的嘴裏),如果有人要在PHP中處理字符串,那麼應該熟悉PHP字符串函數。 – GZipp 2010-09-30 14:41:52

回答

3

要匹配

preg_match("/^[a-z].+_$/i", $str); 

爲大寫首字母

ucfirst($str); 
2

試試這個:

/^[a-zA-Z].+_$/ 

注: 代替.+你可以使用[some allowed chars]+

2

與至少3字符匹配的輸入與第一個是大寫字母和最後一個開始下劃線使用:

^[A-Z].+_$ 

要允許任何字母開頭,您可以使用:

^[A-Za-z].+_$ 
1

你也可以做這樣的(可能進一步節省正則表達式抖動上下行):

if ((strlen($str) < 3) || !ctype_alpha($str[0]) || (strrchr($str, '_') != '_')) { 
    echo 'Invalid string'; 
} else { 
    $str = ucfirst($str); 
}