2017-11-11 151 views
-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。有沒有一種簡單的方法來做到這一點?我是新來的正則表達式,但我可以在這個網上找到方向。

注意:我不會爲日期的結構編寫正則表達式,因爲某些字符串有多個日期,我只希望標題中的日期。謝謝!

+1

您使用哪種語言?這將決定你如何獲得捕獲組。 – user184994

+0

猜測:您正在使用Java,然後查看[文檔](https://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html#group(int)): 「...零組表示整個模式...」 – alfasin

+0

我正在使用Python。我想知道是否有可能在正則表達式中做到這一點。實施是否要求使用任何相關的母語? – hackerman

回答

0

您可以使用負前瞻/回顧後,而不是捕捉組

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

這將確保它的標題開始,而實際上沒有選擇它

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'