2011-12-02 46 views
0

我有這樣的文字:使用組和子組解析正則表達式?

* Ikke 26/12 11. 
** Ikke 24/12 11. 
*** Ikke 22/8 11. Ikke 29/8 11. Ikke 5/9 11. Ikke 12/9 11. Ikke 19/9 11. Ikke 26/9 11. Ikke 3/10 11. Ikke 10/10 11. Ikke 17/10 11. Ikke 24/10 11. Ikke 31/10 11. Ikke 7/11 11. Ikke 14/11 11. Ikke 21/11 11. Ikke 28/11 11. Ikke 5/12 11. Ikke12/12 11. Ikke 19/12 11. 
**** Ikke 25/12 11. 

,我試圖寫一個正則表達式來obain所有asterixes和日期。但是我需要知道以前出現的異星的數量。

到目前爲止,我已經拿出(?<Stars>\**)*(?<Date>\d{1,2}/\d{1,2} \d{2}),但由於某種原因,它不會找到asterixes。

我知道我可以先分割文本,但我想嘗試用正則表達式只

+1

你想在輸出中做什麼? –

回答

1

你可能更好做的東西匹配像

(?m)^(?<Stars>\*+)|(?<Date>\d{1,2}/\d{1,2} \d{2}) 

而且每場比賽都看,如果你有星星(第一組被定義)或日期。如果你將星星保存在變量中供以後使用。日期匹配時檢查以前存儲的星形變量。

+1

這隻會得到第一顆星星...它不會得到後續的星星......但在開始時擺脫「^」會使它工作。 –

+0

錯誤........ http://regexr.com?2vc8v –

+1

它會得到所有星星,忘記提及您需要多行標誌,或者只是將「(?m)」添加到正則表達式的開頭。 – Qtax

0

我想你想

(?<Stars>\**) 

(?<Stars>\**)* 

這將可能是 '撞' 星號與 '空運行' 最新的比賽(因爲*允許0或更多)。

或者:

(?<Stars>\*+)? 

(匹配1個或多個* - 可選)

0

這應該工作...基本上你什麼都沒有說,忽略日期和恆星之間的東西...

(?<Stars>[*]*)(?<ignore>.*?)(?<Date>\d{1,2}/\d{1,2} \d{2}) 
+0

錯誤http://regexr.com?2vc8p –