2014-08-29 97 views
0

我想在三個不同的組中匹配幾天,幾個月和幾年,所以我會知道該組[0] =年,組[1] =月,組[2] =天。

匹配日期,月份和年份字符串

Ano == Year, Anos == Years<br> 
Mes == Month, Meses == Months<br> 
Dia == Day, Dias == Days<br><br> 

輸入:

1 ano 12 meses 1 dia 
    2 anos 
    1 ano 
    1 mes 
    1 dia 
    2 meses 1 dia 
    1 mes 3 dias 
    3 dias 

下面是我試過的模式:
([0-9]+)ano*([0-9]+)mes*([0-9]+)dia

輸出需要:

1 12 1 
    2 
    1 
    1 
    1 
    2 1 
    1 3 
    3 


Live Example:

回答

1
(?:(\d+) anos?)?(?:(?:^|)(\d+) mes(?:es)?)?(?:(?:^|)(\d+) dias?)? 

上述圖案將起作用。你也需要使用多行標誌(m)。

下面是一個例子:http://regex101.com/r/wA6xJ2/1

+0

感謝您的幫助。 – TioTorres 2014-08-29 19:01:52

+0

@TioTorres您需要啓用多行和全局標誌。 – hjpotter92 2014-08-29 19:02:12

1

你可以試試下面的正則表達式,

(?:(\d+)\s*ano\S*)?(?:\s*(\d+)\s*mes\S*)?(?:\s*(\d+)\s*dia\S*)? 

DEMO

+0

感謝您的幫助。 – TioTorres 2014-08-29 19:02:38

+0

不客氣 – 2014-08-29 19:09:32

相關問題