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