Я делаю фильтр, в котором проверяю, содержит ли строка Unicode (кодировка utf-8) символы верхнего регистра (на всех языках). Меня устраивает, если строка вообще не содержит никаких символов в регистре.
Например: «Привет!» не пройдет фильтр, но "!" должен пройти фильтр, поскольку "!" не регистровый персонаж.
Я планировал использовать метод islower (), но в приведенном выше примере «!». Islower () вернет False.
Согласно документации Python, «метод unicode python islower () возвращает True, если все символы в регистре строки Unicode являются строчными, а строка содержит хотя бы один символ в регистре, в противном случае он возвращает False».
Поскольку метод также возвращает False, когда строка не содержит символов в регистре, т.е. "!", Я хочу проверить, содержит ли строка какой-либо символ в регистре.
Что-то вроде этого....
string = unicode("!@#$%^", 'utf-8')
#check first if it contains cased characters
if not contains_cased(string):
return True
return string.islower():
Есть предложения по функции contains_cased ()?
Или, возможно, другой подход к реализации?
Спасибо!