我有一个需要解析的字符串:这是示例字符串:
sample_string = "([0, 22, 23, 24, 25, 47, 59],36155), ([0, 1, 22, 23, 24, 25, 47, 59, 7],36154), ([0, 1, 22, 23, 24, 25, 47, 50, 59, 7],36153)"
我尝试了以下正则表达式,但似乎不正确:
\((\[[(\d)+][,?])+\]),(\d)+\)
正则表达式的目的是轻松访问元组的列表部分以及元组的整数部分。最简单的方法是使用 ast.literal_eavl(sample_string) 但想知道为什么上面的正则表达式无法正确解析它?
最佳答案
除非有一些令人信服的理由,否则我不建议您在这里使用正则表达式。
试试ast
模块
>>> import ast
>>> sample_string = "([0, 22, 23, 24, 25, 47, 59],36155), ([0, 1, 22, 23, 24, 25, 47, 59, 7],36154), ([0, 1, 22, 23, 24, 25, 47, 50, 59, 7],36153)"
>>> ast.literal_eval(sample_string)
(([0, 22, 23, 24, 25, 47, 59], 36155), ([0, 1, 22, 23, 24, 25, 47, 59, 7], 36154), ([0, 1, 22, 23, 24, 25, 47, 50, 59, 7], 36153))
>>>
关于用于复杂列表和整数组合的 python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216999/