假设我有一个字符串,我想检查这个字符串上的很多条件。例如:
1-3的所有条件 它可以在函数中以常规标准方式完成(如果这个和那个等')
但是......我怎么能以一种优秀的蟒蛇风格的方式在一行中做到这一点?
答案 0 :(得分:7)
您可以使用if
的简单any
条件:
s='fdsfgsgsfds9'
if len(s)==7 and not any(c.isspace() for c in s) and s[-1].isdigit():
pass
答案 1 :(得分:5)
它可能比它的价值更复杂,但你可以用正则表达式检查所有这些条件。
例如,如果您想要的大小为8个字符,则可以使用以下方法检查所有三个条件:
if re.match(r'\S{7}\d$', text):
print 'all conditions match'
答案 2 :(得分:4)
一种方法是使用正则表达式(假设x
为10):
if re.match(r"\S{10}(?<=\d)$", mystring):
# Success!
答案 3 :(得分:1)
尝试类似
的内容import re
def test(s):
return len(s)>=x and re.match("^\S*\d$", s)
这将测试字符串的长度是否至少为x
,并且它是一系列非空格字符,后面跟一个数字字符。