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