我有一条线(以及任意数量的线) 0 1 1 75 55
我可以通过做得到它
x = re.search("\d+\s+\d+\s+(\d+)\s+(\d+)\s+(\d+)", line)
if x != None:
print(x.group(1))
print(x.group(2))
print(x.group(3))
但是必须有一种更简洁的方式来编写它。我正在查看文档以寻找重复前面表达式的内容并找到 (exp){m times}。
所以我试试
x = re.search("(\d+\s+){5}", line)
然后期望 x.group(1) 为 0、2 为 1、3 为 1 等等 但是 x.group(1) 输出 55(最后一个数字)。我有点困惑。谢谢。
也在旁注中。你们对正则表达式的在线教程(或免费下载书籍)有什么建议吗?
请您参考如下方法:
重复捕获组 does not work, and won't any time soon (在能够单独实际访问匹配部分的意义上)——您只需要长篇大论地编写正则表达式或使用字符串方法,例如 .split() , 完全避免正则表达式。
