Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите с регулярным выражением / 24 сообщений из 24, страница 1 из 1
22.12.2005, 10:09
    #33451020
Duke1999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
надо обработав страницы галлереи картинок получить список ссылок на картинки и список соответствующей ссылке картинки, убрав все лишние ссылки на странице
в идеале галлерея это что-то вроде этого:
<a href="/big/big_pic1.jpg"><img src="/small/small_pic1.png"></a>
получить что-то вроде этого
Код: plaintext
array('href'=>"/big/big_pic1.jpg", 'img'=>"/small/small_pic1.png")
так как дизайн галлерей абсолютно разный составить УНИВЕРСАЛЬНОЕ регулярное выражение не получается, а очень хочется...
...
Рейтинг: 0 / 0
22.12.2005, 12:53
    #33451743
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
и не получится
...
Рейтинг: 0 / 0
22.12.2005, 13:15
    #33451840
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
почему не получится? Надо только написать искусственный интеллект и всё получится.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
22.12.2005, 13:22
    #33451864
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
хотя можно написать бесконечно извращенское регулярное выражение, скажем, вот его начало: <[aA][^>](href|HREF)=("[^"]"|'[^']'|\S*).*>
...
Рейтинг: 0 / 0
22.12.2005, 13:24
    #33451871
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
вернее даже так: <[aA][^>]+(href|HREF)=("[^"]*"|'[^']*'|\S*)[^>]*>
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
22.12.2005, 13:30
    #33451892
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
тебе надо DOM-дерево построить по ХТМЛ-файлу

и анализировать по дереву....

покопай в эту сторону + XML-парсеры глянь....

а одним регекспом это не решишь (можно конечно написать слона, но даже слон где-то та и обламается, ибо всего не учесть)

можешь посмотреть тут ... если нужно универсальное решение одним регекспом не обойдешься. Придется доку изучать и пробовать, пробовать, пробовать....

2maXmo: тут скорее рекурсивный регексп рисовать надо
...
Рейтинг: 0 / 0
22.12.2005, 13:35
    #33451906
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
если слона писать по тз, то в рамках тз не обломается.
------------------
- А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm
...
Рейтинг: 0 / 0
22.12.2005, 13:43
    #33451924
Duke1999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
мдя... разочаровали вы меня, други... а моих сильноскромных умственных потуг хватило на такой шаблон для preg_match_all:
Код: plaintext
1.
$pattern = "/<\s*a.+?href\s*=\s*([\"\']?)(.+?".$_ext_string.")\\1[^>]*>\s*<\s*img.+?src\s*=\s*([\"\']?)(.+?".$_ext_string_thumb.")\\ 3 .*?>\s*<\/a>/isx";
потом еще идет обработка полученного... иногда срабатывает, иногда нет... может кому и пригодится...
полез в сторону XML
...
Рейтинг: 0 / 0
22.12.2005, 13:46
    #33451936
Duke1999
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
З.Ы. если все же есть готовое решение - подскажите, а то время на эту байду уже угробил тучу. Даже денежку дать могу...
...
Рейтинг: 0 / 0
22.12.2005, 13:49
    #33451950
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Для затравки:
Код: plaintext
1.
/<a\shref=\".[1,]\"><img\ssrc=\".[1,]\"></a>/
...
Рейтинг: 0 / 0
22.12.2005, 13:57
    #33451980
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
не пытайся изобрести велосипед.... регексп для парсинга того что ты хочешь может быть сколькоугодно сложным и всеравно не учитывать всех вариантов (найдется способ его обойти). Если построить дерево ты однозначно определишь список ссылок которые содержат единственный тег ИМЖ и больше ничего вытащить необходимые атрибуты и все это посредством небольшой ф-ции на 30-40 строчек. Т.к. ХМЛ-ные либы уже написаны другими людьми за тебя и вопрос парсинга ложится на них.

В доказательство того что врядли ты напишешь чтото универсальное могу привести RFC822-регексп для валидации e-mail адреса (порядка 200 строчек)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$RFC822PAT = <<'EOF';
[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\
xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xf
f\n\015()]*)*\)[\040\t]*)*(?:(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\x

... тут выкусено много спама чтоб не засорять форум ....

-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<
>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x8
0-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:
\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]
*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)
*\)[\040\t]*)*)*>)
EOF

$RFC822PAT =~ s/\n//g;


Email::Valid - перловый модуль, при желании рекомендую ознакомится :)

вы все еще хотите писать рег-експ? :) тогда мы идем к вам :))
...
Рейтинг: 0 / 0
22.12.2005, 13:59
    #33451986
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
SarinДля затравки:
Код: plaintext
1.
/<a\shref=\".[1,]\"><img\ssrc=\".[1,]\"></a>/


.[1,] - мне понравилось особо :) ... я плякаль :)
...
Рейтинг: 0 / 0
22.12.2005, 17:24
    #33452737
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Anjey aka PM SarinДля затравки:
Код: plaintext
1.
/<a\shref=\".[1,]\"><img\ssrc=\".[1,]\"></a>/


.[1,] - мне понравилось особо :) ... я плякаль :)
Мля, я не спал пол ночи а вы тут от мя требуете регулярные выражения!!!
Код: plaintext
1.
/<a\shref=\".[1,]\"><img\ssrc=\".[1,]\"></a>/
следует читать как
Код: plaintext
1.
/<a\shref=\".{1,}\"><img\ssrc=\".{1,}\"></a>/
...
Рейтинг: 0 / 0
22.12.2005, 17:25
    #33452742
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
...
Рейтинг: 0 / 0
22.12.2005, 17:59
    #33452847
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Anjey aka PMВ доказательство того что врядли ты напишешь чтото универсальное могу привести RFC822-регексп для валидации e-mail адреса (порядка 200 строчек)Достаточно было ссылку дать :)
...
Рейтинг: 0 / 0
22.12.2005, 19:49
    #33453080
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
* Anjey aka PMВ доказательство того что врядли ты напишешь чтото универсальное могу привести RFC822-регексп для валидации e-mail адреса (порядка 200 строчек)Достаточно было ссылку дать :)

я брал из сорцов Email::Valid :)

Sarin
следует читать как

Код: plaintext
<a\shref=\".{1,}\"><img\ssrc=\".{1,}\"></a>


а конструкции .+ еще никто не отменял
...
Рейтинг: 0 / 0
22.12.2005, 23:29
    #33453266
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Anjey aka PMа конструкции .+ еще никто не отменял
Прости, я такой не знаю.
...
Рейтинг: 0 / 0
22.12.2005, 23:41
    #33453274
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Sarin Anjey aka PMа конструкции .+ еще никто не отменял Прости, я такой не знаю. Ф мэсэдэнэ, животное!
...
Рейтинг: 0 / 0
22.12.2005, 23:46
    #33453278
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
*[quot Sarin]Ф мэсэдэнэ, животное!
Спасиб.

Я регулярные выражения перловые по JS учил. Там такого вродь нету.

Почему мэсэдэн и за что "животное"?
...
Рейтинг: 0 / 0
22.12.2005, 23:57
    #33453285
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
SarinПочему мэсэдэн и за что "животное"?Классика жанра :) Без обид :)
http://phpclub.ru/talk/showthread.php?threadid=69905
...
Рейтинг: 0 / 0
23.12.2005, 00:01
    #33453287
Anjey aka PM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Perl regular expressions
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
The following standard quantifiers are recognized:

    *      Match 0 or more times
    +      Match 1 or more times
    ?      Match 1 or 0 times
    {n}    Match exactly n times
    {n,}   Match at least n times
    {n,m}  Match at least n but not more than m times
...
Рейтинг: 0 / 0
23.12.2005, 00:41
    #33453316
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
* SarinПочему мэсэдэн и за что "животное"?Классика жанра :) Без обид :)
http://phpclub.ru/talk/showthread.php?threadid=69905
Да я и не обиделся:)
...
Рейтинг: 0 / 0
23.12.2005, 00:42
    #33453318
Sarin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Anjey aka PMPerl regular expressions
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
The following standard quantifiers are recognized:

    *      Match 0 or more times
    +      Match 1 or more times
    ?      Match 1 or 0 times
    {n}    Match exactly n times
    {n,}   Match at least n times
    {n,m}  Match at least n but not more than m times

пасиб. я уже прочитал.
...
Рейтинг: 0 / 0
23.12.2005, 14:59
    #33454640
Spooki
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с регулярным выражением
Duke1999

Используй DOM
В php это через это делается
xml_parser_create - создание
xml_set_element_handler - тэги
xml_set_character_data_handler - содержимое

, а далее навесь, какие хочешь регулярки на содержимое тэгов и получишь свои массив(ы).
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / помогите с регулярным выражением / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]