Python 展平正则表达式组匹配 总结
我创建了一个正则表达式,它可以从html页面获取多个不同的数据。它在非捕获组中使用分组的备选方案。它可以很好地抓取所需的数据;然而,这些组并没有在尽可能少的匹配中合并 在编写代码时,我认为使用在线regex tester时,匹配和组似乎有点奇怪,但直到我用python实现了它,我才注意到组继承权的问题 我唯一的解决办法似乎是Python 展平正则表达式组匹配 总结,python,regex,python-3.x,regex-group,flatten,Python,Regex,Python 3.x,Regex Group,Flatten,我创建了一个正则表达式,它可以从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)