Code: import re h = """<span style="color:#777777;"><a class='addAudioLink' href="" onclick="addAudio(this, {act:'a_add',add:1,gid:0,aid:73997023,oid:66812379 ,hash:'4284ff74a2fa5248ba79500ef5f9388c'});return false;">Добавить</a></span>""" j = re.search("aid:(?P<aid>\d+),oid:(?P<oid>\d+) ,hash:'(?P<hash>\w+)'", h) print j.groups() Code: ('73997023', '66812379', '4284ff74a2fa5248ba79500ef5f9388c') Или вот так на Perl: Code: #!/usr/bin/perl $h = <<EOF; <span style="color:#777777;"><a class='addAudioLink' href="" onclick="addAudio(this, {act:'a_add',add:1,gid:0,aid:73997023,oid:66812379 ,hash:'4284ff74a2fa5248ba79500ef5f9388c'});return false;">Добавить</a></span> EOF $h =~ /aid:(\d+),oid:(\d+) ,hash:'(\w+)'/; print "aid: $1\n"; print "oid: $2\n"; print "hash: $3\n"; Code: aid: 73997023 oid: 66812379 hash: 4284ff74a2fa5248ba79500ef5f9388c С PHP знаком плохо, но: Code: <?php $s = <<<EOF <span style="color:#777777;"><a class='addAudioLink' href="" onclick="addAudio(this, {act:'a_add',add:1,gid:0,aid:73997023,oid:66812379 ,hash:'4284ff74a2fa5248ba79500ef5f9388c'});return false;">Добавить</a></span> EOF; preg_match_all("/aid:(?<aid>\d+),oid:(?<oid>\d+) ,hash:'(?<hash>\w+)'/", $s, $m); echo "<p>aid: " . $m["aid"][0] . "</p>"; echo "<p>oid: " . $m["oid"][0] . "</p>"; echo "<p>hash: " . $m["hash"][0] . "</p>"; ?> Code: aid: 73997023 oid: 66812379 hash: 4284ff74a2fa5248ba79500ef5f9388c
чёт не выходит.. пробую на php сделать... PHP: <?php $string = "<span style='color:#777777;'><a class='addAudioLink' href='' onclick='addAudio(this, {act:'a_add',add:1,gid:0,aid:73997023,oid:66812379 ,hash:'4284ff74a2fa5248ba79500ef5f9388c'});return false;'>Добавить</a></span>"; preg_match_all("/aid:(\d+),oid:(\d+) ,hash:'(\w+)'/", $string, $arr); echo $arr; ?> в чём проблема?
Проблема в тебе, т.к. функция возвращает array PHP: <?php $str = <<<HTML <span style="color:#777777;"><a class='addAudioLink' href="" onclick="addAudio(this, {act:'a_add',add:1,gid:0,aid:73997023,oid:66812379 ,hash:'4284ff74a2fa5248ba79500ef5f9388c'});return false;">Добавить</a></span> HTML; if(preg_match('#gid:(\d+),aid:(\d+),oid:(\d+)#',$str,$m)) print_r($m); ?>
Есть сайт. http://v-ctile.ru/ Под каждым дизайном есть кнопка "получить". При нажатии на неё выдаётся "Отправьте SMS-сообщение 838610 на номер 7122". Вот нужно спарсить 838610. Спасибо.
Вообщето данное выражение будет выдирать все подрят начиная с "8" длинною 6 символов, это может быть что угодно- пробел, символы, числа и тд.
Помогите разобраться с регуляркой PHP: $upd = curl_init(); curl_setopt($upd, CURLOPT_URL, "http://".$user['url']); curl_setopt($upd, CURLOPT_RETURNTRANSFER, 1); $ress = curl_exec($upd); curl_close($upd); $ress = preg_replace('#(<meta name="description" content=")(.*)(">)#iU','$2',$ress); echo $ress; Нужно ,чтобы вывело то, что режется регуляркой . А выводится то , что режется регуляркой и сам сайт. Дак вот, как сделать так, чтобы выводилось ТОЛЬКО, то , что режется регуляркой ?
Спасибо Теперь возник другой вопрос, уже 1.2 часа сижу "мозги" ломаю Как вырезать из этой строки Code: http://www.google.ru/search?hl=ru&source=hp&q=[COLOR=DarkRed]antichat.ru[/COLOR]&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq= что бы вернуло antichat.ru Пробовал так PHP: $a = preg_replace('#(&q=)(.*)(&b)#iU','$2',$a); echo $a;
Senap PHP: <?php $text="http://www.google.ru/search?hl=ru&source=hp&q=antichat.ru&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google&lr=&aq=f&oq="; preg_match('/q=(.*)&btnG/',$text,$m); echo $m[1]; ?> UPD: ('#(&q=)(.*)(&b)#iU','$2',$a); echo $a; 1. Название переменной не может быть цифровым 2. Я же сказал,что нужно индекс выводить
Как выбрать 2 варианта PHP: $pat ='#href=\"(/lv/work/are-required/today/page\d\.html)\"#is'; preg_match_all($pat,$string,$poc); Проблема следующая при поиске на совпадение линков может быть 2 варианта Вопрос как найти 2 вариант ипользую регулярку . есть оператор альтернативы #\.txt|.doc#.
PHP: $pat ='#href=\"((/lv/work/are-required/today/)page\d\.html)\"#is'; preg_match_all($pat,$string,$poc);
Помогите с регуляркой для парсинга из текста MD5 хешей... "#([a-f0-9]{32})#is" не подходит, так как определяет как хешь часть строки из символов [a-f0-9] длинной больше 32.. а мне не нужно это... Если сделать так: "#[^a-f0-9]+([a-f0-9]{32})[^a-f0-9]+#is" то есть по бокам подставить как минимум по одному символу не из [a-f0-9], тогда не определяются хеши идущие подряд через пробел (другой символ).. Подскажите..
Есть регулярка: PHP: preg_match_all('/http:\/\/?([^\/]+)\//i',$url, $regs); Выдирает из ссылки домен. Но работает она только для ссылок, домен которых оканчивается слэшем(/). Из ссылки вида http://lenta.ru - lenta.ru не будет выдернута. Так вот каким образом можно составить регулярку, которая выдирала бы из ссылок http://lenta.ru - lenta.ru Причём универсальность для всех ссылок не нужна. Регулярке будут подсовываться ссылки исключительно без слэша после домена.
PHP: <?php $url='http://www.lenta.ru'; preg_match('/http:\/\/(www\.)?(.*)/i',$url, $n); echo $n[2]; ?>