Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 展平正则表达式组匹配 总结_Python_Regex_Python 3.x_Regex Group_Flatten - Fatal编程技术网

Python 展平正则表达式组匹配 总结

Python 展平正则表达式组匹配 总结,python,regex,python-3.x,regex-group,flatten,Python,Regex,Python 3.x,Regex Group,Flatten,我创建了一个正则表达式,它可以从html页面获取多个不同的数据。它在非捕获组中使用分组的备选方案。它可以很好地抓取所需的数据;然而,这些组并没有在尽可能少的匹配中合并 在编写代码时,我认为使用在线regex tester时,匹配和组似乎有点奇怪,但直到我用python实现了它,我才注意到组继承权的问题 我唯一的解决办法似乎是 重写正则表达式,使每个匹配有5个匹配的组 编写python代码以扁平化数据结构 还有别的吗 上面的第一条建议最好是放弃这些想法。我不想用不需要的代码“污染”我的代码库 代码

我创建了一个正则表达式,它可以从html页面获取多个不同的数据。它在非捕获组中使用分组的备选方案。它可以很好地抓取所需的数据;然而,这些组并没有在尽可能少的匹配中合并

在编写代码时,我认为使用在线regex tester时,匹配和组似乎有点奇怪,但直到我用python实现了它,我才注意到组继承权的问题

我唯一的解决办法似乎是

  • 重写正则表达式,使每个匹配有5个匹配的组
  • 编写python代码以扁平化数据结构
  • 还有别的吗
  • 上面的第一条建议最好是放弃这些想法。我不想用不需要的代码“污染”我的代码库

    代码 正则表达式 我想要什么

     [
         ('A1', 'B1', 'C1', 'D1', 'E1'),
         ('A2', 'B2', 'C2', 'D2', 'E2')
         ...
     ]
    

    同样,是否有方法重写正则表达式,使每个匹配有5个匹配的组?

    如果这五个东西必须按照您的示例所示的顺序出现,请将它们与
    *?
    组合,而不是

    (regex1).*?(regex2).*?(regex3).*(regex4).*?(regex5)
    
    而不是

    (regex1)|(regex2)|(regex3).*(regex4).*?(regex5)
    
    另一方面,如果它们不一定要按这个顺序出现,那么我不太明白你希望如何把它们塞进僵硬的五组结构中


    不管是哪种方式,在应用正则表达式后,也有可能对结果进行后处理。

    数据是定期排列的,因此从技术上讲,类似的方法可能会奏效,但我需要对其进行返工。我的代码基于多行并使用每行的开头。这一逻辑已被删除。这似乎是失败的,因为新的路线。为什么否决票?这如何不显示研究或不清楚?
    (regex1).*?(regex2).*?(regex3).*(regex4).*?(regex5)
    
    (regex1)|(regex2)|(regex3).*(regex4).*?(regex5)