Мне нравится получать описание записи календаря, которое программа называла выходы hhal, используя grep. Выход Хал выглядит следующим образом:Как описать необязательный негативный прогноз в регулярном выражении?
20:30-22:30 13.05.2015: Manfred treffen Repeat: FREQ=WEEKLY;BYDAY=WE;WKST=MO
09.05. - 12.05.2015: Britt Besuch
В примере, который я хотел бы, чтобы соответствовать Manfred treffen
и Britt Besuch
. Однако, поскольку вы можете видеть, что первое назначение - повторное назначение, и там для халя добавляет эту информацию к выходу. В этом случае регулярное выражение должно гарантировать, что каждая целая часть, начинающаяся с Repeat:
, будет опущена, но, конечно, только в том случае, если она существует.
grep -oP "(?<=:)(.)+(?=Repeat: .+$)"
получает меня Manfred treffen
но не Britt Besuch
Однако grep -oP "(?<=:)(.)+(?=Repeat: .+$|$)"
дает мне описания обоих назначений, но первый с целым «Repeat: ...» часть включала в себя.
Мне кажется, что это необязательный просмотр. Я нашел аналогичный вопрос о stackoverflow, но на самом деле не понимал подход (Greedy match) и не смог его принять для моего случая.
Вам не нужно идти для захвата группы. –
Это будет соответствовать «Britt Besuch, это предложение» в '09.05. - 12.05.2015: Бритт Безуч это предложение « – Kasramvd
странно, в демо он работает. На моем компьютере, однако, я до сих пор получаю всю информационную строку «Repeat:» до конца –