这是输入字符串:
#video:firstVideo.mp4#
#video:secondVideo.mp4 title:Title of second Video#
#video:thirdVideo.mp4#
我想匹配以上所有行(标题:属性是可选)。但是,下面的Java RegEx仅匹配第二个行。
(?<=#)video:(.*?).mp4\stitle:(.*?)(?=#)
如何更正此RegEx以使标题:属性可选并返回所有三行?我将投票给任何有效/高效答案的人!
答案 0 :(得分:3)
试试这个:
(?<=#)video:(.*?).mp4(\stitle:(.*?))?(?=#)
或者只是:
#video:(.*?).mp4(?:\stitle:.*?)?#
请参阅rubular。
这取决于您希望在匹配组中拥有的内容。
答案 1 :(得分:2)
您应该能够将可选标题部分放入非捕获组,然后使用?
使其成为可选项:
(?<=#)video:(.*?).mp4(?:\stitle:(.*?))?(?=#)