Skip to main content
 首页 » 编程设计

python之重复前面的正则表达式

2025年05月04日25bhlsheji

我有一条线(以及任意数量的线) 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() , 完全避免正则表达式。