【发布时间】:2021-03-11 00:46:25
【问题描述】:
我正在创建一个脚本,它接受用户输入的类/ID 名称,然后解析我的所有 HTML 文件并定位并打印包含它们的任何行。
我得到的最接近的是:class=["']((.*?)(USER_INPUT_NAME))[\s"']
- 我将在 Python 中使用它,所以我知道我必须包含转义字符才能使其正常执行。
这仍然会给以下行带来问题:
-
<div class="cover-container">只搜索“容器”时——我最终找到了“封面容器” -
<button type="button" class="close modal-exit" data-dismiss="modal" aria-label="Close">仅搜索“modal”时,它明显超出了类的范围,并在另一个标识符中找到它。
我显然不是最擅长正则表达式,我一直在尝试通过利用其他问题来解决它,但我似乎无法到达那里,因为“-”将我的正则表达式扔掉并保持在 class=" " 引号把它扔掉了。如有任何帮助,我将不胜感激。
【问题讨论】:
-
您是否考虑过使用BeautifulSoup 来解析您的html??
-
@wwii 我最初也是这么想的,但是它如何返回该行的行号和内容?
-
很难说,因为您的minimal reproducible example 不包含在示例数据中,并且(至少对我而言)不清楚您到底想要做什么。解析 html 你不能指望有任何 lines - 你不能指望 html 字符串 打印得很漂亮 所以行号通常没有任何意义;找到标签后,您通常可以找到兄弟姐妹、父母、邻居……以及他们的内容。