我有一个字符串需要解析成二维数组:
str = "'813702104[813702106]','813702141[813702143]','813702172[813702174]'"
数组等效物将是:
arr[0][0] = 813702104
arr[0][1] = 813702106
arr[1][0] = 813702141
arr[1][1] = 813702143
#... etc ...
我尝试使用正则表达式来实现这个。上面的字符串被嵌在HTML页面中,但我可以确定它是页面上该模式中唯一的字符串。我不确定这是否是最好的方法,但这是我目前所拥有的全部。
imgRegex = re.compile(r"(?:'(?P<main>\d+)\[(?P<thumb>\d+)\]',?)+")
如果我运行
imgRegex.match(str).groups()
,我只能得到一个结果(第一对)。如何才能获得多个匹配或2D匹配对象(如果这样的东西存在的话)?请注意:与它看起来的方式相反,这不是作业。注2:真正的字符串嵌入在一个大的HTML文件中,因此分割似乎不是一个选项。我仍然在为此问题寻找答案,所以我想我最好编辑一下,以显示为什么我不改变接受的答案。尽管在这个测试字符串上更有效率,但拆分不会从整个HTML文件中提取部分。我可以结合使用正则表达式和拆分,但那似乎很愚蠢。如果您有更好的方法来查找一堆HTML中的部分(模式\d+\[\d+\]
在源中是唯一的),我将很高兴更改接受的答案。其他任何事情都是学术性的。