我正在针对两个条件Profile
和BuildDate
运行简单的正则表达式搜索。
我想要涵盖这样的可能性:我要么找到两个,一个或没有结果,并尽可能多地返回信息。这是我写的方式,但我想知道是否有更多的Pythonic方式?
p = re.search(r'Profile\t+(\w+)',s)
d = re.search(r'BuildDate\t+([A-z0-9-]+)',s)
# Return whatever you can find.
if p is None and d is None:
return (None, None)
elif p is None:
return (None, d.group(1))
elif d is None:
return (p.group(1), None)
else:
return (p.group(1),d.group(1))
答案 0 :(得分:3)
p = re.search(r'Profile\t+(\w+)',s)
d = re.search(r'BuildDate\t+([A-z0-9-]+)',s)
return (p.group(1) if p is not None else None,
d.group(1) if d is not None else None)
也是这样:
return (p and p.group(1), d and d.group(1))
虽然不那么冗长,但有点模糊。