如何匹配使用正则表达式捕获组1

时间:2017-11-11 18:12:14

标签: python regex

我的目标是从以下字符串中捕获日期:

<span class="ui_bubble_rating bubble_50"></span><span class="ratingDate relativeDate" title="November 9, 2017">Reviewed 2 days ago </span><a class="viaMobile" href="/apps" target="_blank" onclick="ta.util.cookie.setPIDCookie(24487)"><span class="ui_icon mobile-phone"></span>via mobile </a>

为此我使用正则表达式:title="(*?)" 返回匹配(组0):title="November 9, 2017"组1:November 9, 2017

我需要正则表达式返回的匹配仅仅是日期,当前组是什么。有一种简单的方法吗?我是regex的新手,但我可以在网上找到方向。

注意:我没有为日期结构编写正则表达式,因为有些字符串有多个日期,我只想要标题中的日期。谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用re.findall

import re
s = """
  <span class="ui_bubble_rating bubble_50"></span><span class="ratingDate relativeDate" title="November 9, 2017">Reviewed 2 days ago </span><a class="viaMobile" href="/apps" target="_blank" onclick="ta.util.cookie.setPIDCookie(24487)"><span class="ui_icon mobile-phone"></span>via mobile </a>
  """
date = re.findall('title="(.*?)"', s)[0]

输出:

'November 9, 2017'

答案 1 :(得分:0)

您可以使用负向前瞻/后视而不是捕捉组

(?<=title=\").+?(?=")

这将确保它以标题开头,而不是实际选择它