2011-09-06 49 views
0

這裏是輸入字符串:正則表達式匹配幫助

#video:firstVideo.mp4# 
#video:secondVideo.mp4 title:Title of second Video# 
#video:thirdVideo.mp4# 

我想匹配上述所有線路(在標題:屬性是可選)。但是,下面的Java RegEx僅匹配第二行行。

(?<=#)video:(.*?).mp4\stitle:(.*?)(?=#) 

我怎樣才能糾正這種正則表達式來進行標題:屬性可選將返回所有三行?我會投票給誰有一個工作/有效的答案!

回答

2

你應該能夠把可選標題部分轉換成非捕獲組後面是?,使之選:

(?<=#)video:(.*?).mp4(?:\stitle:(.*?))?(?=#) 
3

試試這個:

(?<=#)video:(.*?).mp4(\stitle:(.*?))?(?=#) 

或者只是:

#video:(.*?).mp4(?:\stitle:.*?)?# 

rubular

這取決於你想要在你的匹配組中有什麼。