【发布时间】:2019-12-24 01:14:18
【问题描述】:
我正在尝试解析 Python 中包含内联脚本的 HTML。我需要在脚本中找到一个字符串,然后提取该值。在过去的几个小时里,我一直在尝试在regex 中执行此操作,但我仍然不相信这是正确的方法。
这是一个示例:
['key_to_search_for']['post_date'] = '10 days ago';
我要提取的结果是:10 days ago
这个正则表达式让我了解了一部分,但我无法弄清楚完整的匹配:
^\[\'key_to_search_for\'\]\[\'post_date\'\] = '(\d{1,2})+( \w)
但是,即使我可以匹配regex,我也不确定仅获得价值的最佳方式。我正在考虑用空格替换键,例如 .replace('['key_to_search_for']['post_date'] = '',''),但这似乎效率低下。
我应该匹配regex 然后替换吗?有没有更好的方法来处理这个?
【问题讨论】:
-
用正则表达式解析 html 是错误的,但显示更多上下文,显示 html 上下文 - 因为现在它似乎只是一个常规字符串,可能是“正则表达式”
-
您可以使用单个捕获组提取值
^\['key_to_search_for'\]\['post_date'\] = '(\d{1,2} \w+ \w+)';$参见regex101.com/r/ee60zU/1 -
@RomanPerekhrest 我正在使用漂亮的汤来解析 HTML,但漂亮的汤不处理内联脚本。 stackoverflow.com/questions/38547569/…