2010-09-30 102 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); 
}