Python 使用正则表达式提取时间

Python 使用正则表达式提取时间,python,beautifulsoup,Python,Beautifulsoup,我需要帮助来提供正确的语法时,使用正则表达式美丽的汤 我正在使用下面的代码来刮除时间。时间位于包含段落的DIV中。DIV及其内容如下所示: <div class="details"> <p> $25 <br> 8/23<br> 7:00 pm </p> </div> 当我运行上述代码时,我得到以

我需要帮助来提供正确的语法时,使用正则表达式美丽的汤

我正在使用下面的代码来刮除时间。时间位于包含段落的DIV中。DIV及其内容如下所示:

<div class="details"> 
    <p> $25 
    <br>
     8/23<br>
     7:00 pm 
     </p>                             
</div>
当我运行上述代码时,我得到以下结果

$25 
8/23
7:00 pm

因为我只想提取时间(晚上7:00),所以我想使用正则表达式来实现这一点。我无法提供正确的语法。我希望有人能帮助我。

这里不需要正则表达式。BeautifulSoup可以为您获取所需的数据。只需使用
.contents[-1]
访问
标记的最后一个元素

for time_date in bs.find_all("div", {"class": "details"}):
    print(time_date.p.contents[-1].strip())
# 7:00 pm
标记的
.contents
如下所示:

[' $25 \n    ', <br/>, '\n     8/23', <br/>, '\n     7:00 pm \n     ']

谢谢你,基尔。我还想了解如何使用正则表达式。你能给我看一下吗。秒
\d+
可能总是两位数。@meanhem是否有可能是24小时格式,这对
[ap]m
不起作用再次感谢。我实际上如何将这个表达式合并到代码中?非常感谢您的回复,因为我将在其他类似情况下使用正则表达式,并且我无法找到使用compile语句编写代码的正确语法。您以前没有使用正则表达式的解决方案运行得很好。@请检查python中的
re
包您可能希望在问题中添加
regex
标记
[' $25 \n    ', <br/>, '\n     8/23', <br/>, '\n     7:00 pm \n     ']
for time_date in bs.find_all("div", {"class": "details"}):
    print(re.findall(r'\d+:\d+ [ap]m', time_date.text)[0])