PHP正则表达式检查字符串包含大写和小写字母

时间:2011-07-22 14:49:38

标签: php regex

什么是最简单的正则表达式,它将检查字符串是否包含至少一个大写字母和一个小写字母?

编辑:这是一个密码,其中也可能存在数字字符,因此大写和小写字符可能不会彼此相邻。

2 个答案:

答案 0 :(得分:6)

我怀疑你的意思是“ASCII字符”。

  • 简单:[A-Z].*[a-z]|[a-z].*[A-Z]
  • 优雅:^(?=.*?[A-Z])(?=.*?[a-z])

“简单”变体只检查两种可能性:大写字符在小写之前来自,或者反过来。

“优雅”变体使用两个正向前瞻断言来扫描字符串,而无需实际向前移动正则表达式引擎或匹配任何内容。

与第一种方法相比,此变体可以非常容易地扩展以进行更多检查,并且在您检查它符合您的要求后,它允许您消费字符串。

答案 1 :(得分:3)

也可以在没有正则表达式的情况下检查字符串中的大写和小写。

此代码如下所示:

$word = 'AA1FAa';

// Check if word has both uppercase and lowercase letters
if(strtolower($word) != $word && strtoupper($word) != $word){
    echo 'Has both upper and lower case letters';
}else{
    echo 'Does not have both upper and lower case letters';
}