str="status 2xx"
str="status 2xx,3xx"
str="status 2xx,3xx,4xx"
str="status blahblahblah" # should not match this
import re
if re.match('status\s+(\dxx)',str):
print "TRUE" # This matches only first condition.
如何获取文本状态后出现的所有数字(2xx or 3xx or 4xx or all
)?
或者是否有其他方法来提取这些序列?
我们可以处理正则表达式([2xx | 3xx | 4xx])吗?这可能不正确,但有人在这里帮助我。
答案 0 :(得分:1)
一个选项使用正则表达式提取CSV数据,然后在逗号上拆分字符串以获取单独值的列表。
str = "status 123,456 555 789"
m = re.search('^status\s+([0-9]+(?:(?:\s+|,)[0-9]+)*)$', str)
if m:
nums = m.group(1)
vals = filter(None, re.split("[, ]+", nums))
else:
vals = list()
print vals
<强>输出:强>
['123', '456', '555', '789']