3 回答

TA贡献1873条经验 获得超9个赞
from string import ascii_letters, digits
s_int, s_str = sorted([s.strip(ascii_letters), s.strip(digits)])
is_valid = s in {s_int+s_str, s_str+s_int}

TA贡献1816条经验 获得超6个赞
主要是为了娱乐:
ss = ["11547QSD", "ABC98765", "111ABC111"]
fmt = r'\A(?P<full>{0}{1})\Z'
ps = [r'(?P<digits>\d+)', r'(?P<letters>[A-Z]+)']
fs = [fmt.format(*sorted(ps, reverse = b)) for b in [False, True]]
rs = [re.compile(f) for f in fs]
ms = filter(None, (r.search(s) for s in ss for r in rs))
gds = [m.groupdict() for m in ms]
for gd in gds:
print gd
# Output:
# {'digits': '11547', 'full': '11547QSD', 'letters': 'QSD'}
# {'digits': '98765', 'full': 'ABC98765', 'letters': 'ABC'}
添加回答
举报