首页 > 解决方案 > 查找字符串,提取值

问题描述

我正在尝试解析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'] = '',''),但这似乎效率低下。

我应该匹配regexthen 替换吗?有没有更好的方法来处理这个?

标签: pythonregex

解决方案


您可以使用单个捕获组提取值并使用量词匹配 2 个单词 for \w+

该值在捕获组 1 中。

^\['key_to_search_for'\]\['post_date'\] = '(\d{1,2} \w+ \w+)';$

正则表达式演示

或者使用与除 a 之外的任何字符匹配的否定字符类'

^\['key_to_search_for'\]\['post_date'\] = '([^']+)';$

正则表达式演示


推荐阅读