从字符串 Python 搜索并创建列表

Search and create list from a string Python

我是 Python 的新手,我正在尝试用 python 中的字符串创建一个列表。

输入="<html><body><ul style="padding-left: 5pt"><i>(See attached file: File1.pdf)</i><i>(See attached file: File2.ppt)</i><i>(See attached file: File3.docx)</i></ul></body></html>"

期望输出 = [File1.pdf, File2.ppt, File3.docx]

实现此目的最有效且 pythonic 的方法是什么?任何帮助将不胜感激。 谢谢

使用 HTML 解析器(如建议的 shree.pat18)可能是一种很好的方法,但这是一种使用 string.split()

的快速而肮脏的方法
Output = [s.split(")")[0] for s in Input.split("file: ")[1:]]

首先拆分“文件:”我们得到字符串列表,第一个包含原始字符串的第一部分,所以我们不关心那个。其他的以我们想要的文件名开头,我们不关心的第一个字符是“)”。所以在“)”上拆分并取第一部分。

您可以使用 beatifulsoup,它有 HTML 个解析工具。

>>> from bs4 import BeautifulSoup
>>> html = """<html><body><ul style="padding-left: 5pt"><i>(See attached file: File1.pdf)</i><i>(See attached file: File2.ppt)</i><i>(See attached file: File3.docx)</i></ul></body></html>"""
>>> soup = BeautifulSoup(html, parser='html')
>>> files_list = [i.text.split('file: ')[1].replace(')', '') for i in soup.find_all('i')]
>>> print(files_list)
['File1.pdf', 'File2.ppt', 'File3.docx']