Не работает regexp строка в egrep

Linux regexp egrep

Пытаюсь выполнить такую команду:
cat 1.html | egrep '(?<=artists/\d{5}/">).+?(?=\</)|(?<=albums/\d{5}/">).+?(?=\</)' > file.txt
Должна из большого файла выдирать исполнителей и альбомы, например вот из такой строки:
<a href="/artists/35432/">3 Doors Down</a>, <a href="/artists/31509/">Alien Ant Farm</a>, <a href="/artists/50338/">American Hi-Fi</a>
<a href="/albums/52494/">American Pie 2</a>
Но ничего не выходит. Но в он-лайн билдере (http://gskinner.com/RegExr/) работает нормально.
Подскажите, почему так происходит?
Ответы:
Выполнить такую задачу на egrep возможно, если только он одной из последних версий (с поддержкой --only-matching и перловых регулярных выражений).
Проверьте Ваш egrep на совместимость с этими параметрами, и тогда, сможете сделать на нем.
возможно лучше спросить тут http://www.php.com.ua/forum/ или тут http://phpforum.ru/


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.