Справка RegEx Matching - PullRequest
       2

Справка RegEx Matching

0 голосов
/ 07 сентября 2011

Вот строка ввода:

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

Я хочу сопоставить все вышеперечисленные строки (атрибут title: равен необязательно ).Однако приведенный ниже Java RegEx будет соответствовать только строке second .

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

Как я могу исправить этот RegEx, чтобы сделать атрибут title: необязательным и вернуть все три строки?Я буду голосовать за того, у кого есть рабочий / эффективный ответ!

Ответы [ 2 ]

3 голосов
/ 07 сентября 2011

Попробуйте это:

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

Или просто:

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

См. Рубуляр .

Это зависит от того, что вы хотите иметь в соответствующих группах.

2 голосов
/ 07 сентября 2011

Вы должны иметь возможность поместить необязательную часть заголовка в группу без захвата, за которой следует ?, чтобы сделать ее необязательной:

(?<=#)video:(.*?).mp4(?:\stitle:(.*?))?(?=#)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...