确定字符串是否是正则表达式的全部大写字母

时间:2010-02-24 05:56:18

标签: regex

如何判断字符串是否全部带有正则表达式。它可以包括标点符号和数字,只是没有小写字母。

9 个答案:

答案 0 :(得分:20)

m/^[^a-z]*$/

对于非英文字符,

m/^[^\p{Ll}]*$/

答案 1 :(得分:9)

这听起来像你想要的:^[^a-z]*$

答案 2 :(得分:5)

为什么不使用if(string.toUpperCase()== string)? ._。它更“优雅”...... 我认为你试图强制使用RegExp,但正如其他人所说,我不认为这是正则表达式的最佳用法......

答案 3 :(得分:2)

如果表达式/[a-z]/返回true,则字符串包含小写字母,因此只需执行此检查,如果它为false,则表示没有小写字母。

答案 4 :(得分:1)

最简单的似乎是:

^[^a-z]*$

答案 5 :(得分:0)

(s == uppercase(s)) - >如何?字符串是全部大写?

答案 6 :(得分:0)

$str="ABCcDEF";
if ( preg_match ("/[a-z]/",$str ) ){
    echo "Lowercase found\n";
}

答案 7 :(得分:0)

如果要在确保没有小写字母后将字符串与另一个正则表达式匹配,则可以使用正向前瞻。

^(?=[^a-z]*$)MORE_REGEX$

例如,要确保第一个和最后一个字符是字母数字:

^(?=[^a-z]*$)[A-Z0-9].*[A-Z0-9]$

答案 8 :(得分:0)

基本:

^[^a-z]*$

排除空行:

^[^a-z]+$

排除非英语字符(例如,排除包含àlike'VOILà'的字符串)的主题:

^\P{Ll}*$


表达式(例如JS):

单行:

/^[^a-z]*$/

多行:

/^[^a-z]*$/m


理论:

[a-z]匹配一个a,b,c,... z

字符

[a-z]*与a,b,c,... z的一系列字符匹配

^[a-z]*匹配一系列不是 a,b,c ... z

的字符

^[^a-z]*$匹配从头到尾仅包含一系列不是a,b,c,... z的字符的字符串。

^[^a-z]+$确保字符串中至少有一个字符不是a,b,c,... z,其余字符不是a,b,c,... z从开始到结束。

^\P{Ll}*$匹配“字母”组中所有具有大写字母变体的Unicode字符-请参见https://www.regular-expressions.info/