Как можно определить, является ли строка всеми заглавными буквами с регулярным выражением. Это может включать пунктуацию и числа, просто никакие строчные буквы.
Почему бы просто не использовать if (string.toUpperCase () == string)? ._. Это более "элегантно" ...
Я думаю, вы пытаетесь принудительно использовать регулярное выражение, но, как сказал кто-то другой, я не думаю, что это лучшее использование регулярного выражения ...
Строка содержит строчную букву, если выражение / [az] /
возвращает истину, поэтому просто выполните эту проверку, если она ложна, у вас есть без строчных букв.
Если вы хотите сопоставить строку с другим regex после того, как убедились, что в ней нет строчных букв, вы можете использовать положительный lookahead.
^(?=[^a-z]*$)MORE_REGEX$
Например, чтобы убедиться, что первый и последний символы являются буквенно-цифровыми:
^(?=[^a-z]*$)[A-Z0-9].*[A-Z0-9]$
$str="ABCcDEF";
if ( preg_match ("/[a-z]/",$str ) ){
echo "Lowercase found\n";
}
Как насчет (s == прописные буквы)
-> строка состоит только из заглавных букв?
m/^[^a-z]*$/
Для неанглийских символов,
m/^[^\p{Ll}]*$/