Дык сразу бы код выложил) PHP: preg_replace('~<a[^>]*>(.+)</a>~Usi','$1',$e); замени на: PHP: $e = preg_replace('#<a href="[^"]*">([^<]*)</a>#si','<a href="http://\\1">\\1</a>',$e); И всё будет работать)
blaga Может лучше так? PHP: function get_full_vul($url) { $r=file_get_contents($url); $re='#<div class="cont-cont">(.*)<p><strong>Источники#sU'; preg_match($re,$r,$all); $e=strip_tags($all[1],'<p><strong><h1><b><br>'); echo $e; } get_full_vul("http://www.securitylab.ru/vulnerability/369396.php"); Про модификаторы - тут http://ru.php.net/manual/ru/reference.pcre.pattern.modifiers.php
Есть строки вида: <link rel="shortcut icon" href="/sat/favicon.ico" type="image/x-icon"/> Как замутить так, чтобы выдирались только значения определённых атрибутов,к примеру,атрибута rel. preg_match("/<link rel=(.*)/",$out,$matches) Не работает и выдирает всю строку,а тег идёт как <link rel =что-то тут /> Как раз /> и не удаётся впаять...пишет,что,мол,неизвестный модификатор.Само собой,разумеется...Пробовал по-всякому,но выходило одно и тоже.
PHP: <pre> <?php $in = '<link rel="shortcut icon" href="/sat/favicon.ico" type="image/x-icon"/>'; preg_match('|<link rel="(.*)".*/>|Ui',$in,$x); print_r ($x); ?> </pre>
в смысле как: <link rel=" тут все понятно (.*) означает любые символы, т.е. всё, скобочки означают, что надо сохранить ".*/> всё, что после кавычек и до знака />, просто обозначается, что там не пусто, сохранять не надо, поэтому и скобочек нет. || отличается от // только тем, что в || можно писать как есть, например </a>, а в // только так тогда придется: <\/a> - т.е. экранировать так называемые специальные символы. Вот отличная статья по регуляркам в общем, сам по ней вкуривал, на самом дело всё просто до удивления, тем более для программера (и не слушай тех, кто говорит "замудренные словечки" - типо метасимволы и прочее, всё на самом деле как детском садике): http://pyha.ru/forum/topic/19.0 просто надо почитать и врубиться ЗЫЖ Просто уяснить, что очень похоже, когда ищешь файло в виндах, например чтобы найти все .gif файлы - набираешь в строке поиска - *.gif* Ну и тут тоже самое, задаешь маску и смотришь потом, правильно задал или нет.
Я пока другую читал,но твою обязательно прочитаю.Теперь вопрос по-другой регги: /^[a-zA-Z0-9_!#%])+@{1,1}[m][a][l][.][r]{1,1}$/ Это регулярка,которая чекает гипотетическое мыло ТОЛЬКО mail.ru9Так,для себя накатал).Потом пришла мысля,что можно из файла потом считать и сохранять куда-то.Я не прошу каких-то программных решений - это чисто для тренировки.Всё окей,но у меня в $matches(я просто ток регулярку привёл),сохраняется только первый символ мыла.Но оно и ясно - я ведь обработал только один символьный класс.Однако, квантификатор + должен тоже с этим бороться.Символы ^ и $ должны тоже решать проблему с обработкой целой строки.Как выйти из положения пока не решил... ЗЫ: http://www.phpclub.ru/detail/article/regexp_1 Тут тоже статейка хороффая,но я её ещё пока ни асилил до конца.
Нэнэнэ...он же сохранит полностью email,а я хотел,чтобы он только сам логин вырезал. P.S.: Кстати,там два элемента массива...тобишь два совпадения ? Но такого не может быть.Или же это две разные переменные...
/^([a-zA-Z0-9_!#%]+)@{1,1}[m][a][l][.][r]{1,1}$/ Омг, Если ты собрался читать из файла то наверно ^ $ не стоит указывать: #([0-9a-z_]+)@mail\.ru#i
Опля,сработало ж )))Вот ток непонятно,почему не надо указывать ^ и $.Считывается то вся строка...Ты указал модификатор /i,а он распространяется на все символы.Мало я знаю ещё походу
\w - Любой символ, образующий "слово" это и кавычки и все на свете, я думаю на mail.ru запрешены такие имена в мыльнике, да и везде так.
Рулишь)Но с \w пишут,что не катит с символами типа _,а только с диапазонами a-zA-Z,но из-за локали(я так понял - это локалхост),зависит многое...
"word" символ - это произвольная цифра, буква или символ подчеркивания, проще говоря, любой символ, который может являться частью 'слова' в Perl. Но если локаль позволяет то будут и другие символы, отличные от инглиша
что вы делаете товарищь))) PHP: #^([a-z0-9\_\.\-]+)\@mail\.ru$#i ^ и $ это начало конец строки.. () - выделение в подвыражение, оно собственно тут не особо нужно i - модификатор неучета регистра
Сегодня день пьяного гуру? Если не сложно чак обьясни мне зачем слешировать @ и _, грубо говоря вот такое регулярное выражения будет работать с preg_match -#([^_\.\-][0-9a-z_\-\.]{1,16})@mail\.ru#i без лишних телодвижений , А как ты собрался выташить имя без подмаски? З.Ы. 2Велемир не кидайся умными слова пытаесь скрыть свои непонимание чего то.