2011-09-06 66 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

这取决于你想要在你的匹配组中有什么。