如何判断字符串是否全部带有正则表达式。它可以包括标点符号和数字,只是没有小写字母。
答案 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/。