>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Регулярные выражения http://forum.mozilla-russia.org/viewtopic.php?id=38076 |
AnalogXP > 01-08-2009 23:18:16 |
Здравствуйте! Не пинайте, если не там создал топик, просто не знаю где спросить. Вроде были такие темы...
Как видно, все они чем-то отличаются, но и многим похожи. Так вот мне нужно получить то что находится между кавычками HREF="*******"
Помогите создать универсальное регулярное выражение чтобы работала во всех возможных вариантах |
ПротопопулуS > 02-08-2009 00:18:20 |
Если не трудно. то скажите как этот самый href попадает в строку? Просто тут люди, видимо, привыкли, что "строка = регулярное выражение"... |
WiseLord > 02-08-2009 00:57:59 |
Не знаю на чём нужно писать ваше выражение, но если то что вы дали сохранить в файл test, то выделить ссылки получается bash-скриптом с использованием sed, например, так: cat test | sed -e s/'.\+[Hh][Rr][Ee][Ff]="\([^"]\+\)".\+'/'\1'/g (кроме примера 1, разбитого на две строки, если бы их склеить в одну - работало бы) Переводя на "русский": находим строку, в которой идут .\+ (любое количество любых символов), затем href независимо от регистра, затем =", затем [^"]\+ (любое количество любых символов кроме "), это выражение запоминается в скобках \( \), затем идёт ".\+ (кавычки любое количество любых символов) и заменяем эту строку на \1 - то что запомнили, т.е. выражение между двумя " |
Al_H > 02-08-2009 00:58:06 |
AnalogXP пишет
Для какого диалекта регулярных выражений? Хорошая новость: вышла книжка Джефри Фридла про регулярные выражения, третье издание. Плохая новость: дорого. Для Perl 5/PCRE Выделить код Код:<link[ \t]+[^<>\n\r]*(?:rel="(?:shortcut )?icon"[^<>\n\r]*[ \t]+href="([^<>\n\r"]*)"|href="([^<>\n\r"]*)"[^<>\n\r]*[ \t]+rel="(?:shortcut )?icon")[^<>\n\r]*/?> флаги mi |