如何匹配捕获组1的正则表达式
问题描述:
我的目标是捕获来自以下字符串日期:如何匹配捕获组1的正则表达式
<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
我需要我的匹配返回正则表达式只是日期,什么是当前组1。有没有一种简单的方法来做到这一点?我是新来的正则表达式,但我可以在这个网上找到方向。
注意:我不会为日期的结构编写正则表达式,因为某些字符串有多个日期,我只希望标题中的日期。谢谢!
答
您可以使用负前瞻/回顾后,而不是捕捉组
(?<=title=\").+?(?=")
这将确保它的标题开始,而实际上没有选择它
答
您可以使用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'
您使用哪种语言?这将决定你如何获得捕获组。 – user184994
猜测:您正在使用Java,然后查看[文档](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#group(int)): “...零组表示整个模式...” – alfasin
我正在使用Python。我想知道是否有可能在正则表达式中做到这一点。实施是否要求使用任何相关的母语? – hackerman