我有一个字符串列表,如下所示:
list = ['a1', 'a2', 'a3', 'a4', 'a5', 'a6']
我想检索一对字符串之间的所有项目和索引。例如,'a2'和'a6'之间的所有项目。
有没有办法用正则表达式做到这一点?
欲望输出如下: (实际上我只需要索引,因为我可以使用索引检索所有值)。 想要正则表达式的理由是;我正在尝试从PDF中挖掘输出,我正在尝试挖掘文本,并从PDF中提取的文本中创建一个包含所有输出的大列表。从这个从PDF创建的列表中,我试图自动化这些文本提取PDF。由于它们可以有可变文本和不同格式,我希望能够采用各种格式来表示相同的数据。我认为正则表达式允许采用轻微可变格式的文本,然后使用所需的格式进行转换。
参考列表示例:
list = ['name', 'Mark', 'Smith', 'location', 'Florida', 'Coast', 'FL', 'date']
location_indices = [3, 6]
desired namelst = ['name', 'Mark', 'Smith']
location= ['location', 'Florida', 'Coast', 'FL']
我认为最好的方法是获取位置和日期之间的索引,然后我可以生成位置列表。现在,由于我的原始列表在参考列表中可能略有不同,我认为正则表达式为我提供了灵活性,使我可以重新格式化不同的原始列表。
答案 0 :(得分:0)
让我们定义你的清单:
>>> lst = ['a1', 'a2', 'a3', 'a4', 'a5', 'a6']
(为了不覆盖内置,我将列表重命名为lst
。)
现在,让我们检索从a2
到a6
的所有项目的索引和值:
>>> [(i,x) for (i,x) in enumerate(lst) if lst.index('a2')<=i<=lst.index('a6')]
[(1, 'a2'), (2, 'a3'), (3, 'a4'), (4, 'a5'), (5, 'a6')]