使用正则表达式,如何查找仅包含大写或小写的字符串

kfl*_*law 1 python regex python-3.x

我需要检查整个字符串的大小写。并且只打印全部大写或小写的内容。

这是我写的代码。

import re

lower = 'abcd'
upper = 'ABCD'
mix = 'aB'
mix2 = 'abcD'
exp = re.compile("[a-z]{2,}|[A-Z]{2,}")

lower_m = re.findall(exp,lower)
upper_m = re.findall(exp,upper)
mix_m = re.findall(exp,mix)
mix2_m = re.findall(exp,mix2)

print(lower_m)
print(upper_m)
print(mix_m)
print(mix2_m)
Run Code Online (Sandbox Code Playgroud)

Mat*_*ant 6

使用upper()lower()string 方法,而不是正则表达式。

if string.lower() == string or string.upper() == string:
    print string
Run Code Online (Sandbox Code Playgroud)

如果只允许使用字母,还要检查string.isalpha().

如果需要正则表达式,那么您的问题是您没有检查整个字符串。

exp = re.compile("^([a-z]{2,}|[A-Z]{2,})$")

这将确保整个字符串需要适合该模式,而不仅仅是其中的一部分。