【发布时间】:2011-07-22 14:49:37
【问题描述】:
检查一个字符串是否至少包含一个大写字母和一个小写字母的最简单的正则表达式是什么?
编辑:这是用于可能还存在数字字符的密码,因此大写和小写字符可能不会彼此相邻。
【问题讨论】:
检查一个字符串是否至少包含一个大写字母和一个小写字母的最简单的正则表达式是什么?
编辑:这是用于可能还存在数字字符的密码,因此大写和小写字符可能不会彼此相邻。
【问题讨论】:
我怀疑你的意思是“ASCII 字符”。
[A-Z].*[a-z]|[a-z].*[A-Z]
^(?=.*?[A-Z])(?=.*?[a-z])
“简单”变体只检查两种可能性:大写字符出现在小写之前,或者相反。
“优雅”变体使用两个肯定的前瞻断言来扫描字符串,而无需实际向前移动正则表达式引擎或匹配任何内容。
与第一种方法相比,此变体非常容易扩展以进行更多检查,并且它允许您在检查字符串是否满足您的要求后使用字符串。
【讨论】:
^(?=.*\p{Lu})(?=.*\p{Ll}) 虽然没有测试。
u 标志,PHP(如 Ruby)将支持它们。无论如何,+1。
也可以在不使用正则表达式的情况下检查字符串中的大小写。
此代码如下所示:
$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';
}
【讨论】: