parserALT
Страницы форума: ← Назад | 1 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 600 | Дальше →

Подскажите, почему не работают regexp'ы

#1Aaron
21.04.10 07:26
www.parser.ru → | ответить → | в избранное →

Подскажите, почему не работают regexp'ы

топик на stackoverflow как вытащить информацию о домене, файле, параметрах etc.

$site[http://www.subdomain.somesite.com/?path=ololo]
^site.match[вставляю сюда, добавляю к ^^ и ^$][i]{$match.1/2/3}

но ни один пример из топика не работает!

сорри, но я просто не могу осилить регулярки, буду очень признателен, если поможете с выражением:

мне нужно два результата ($match.1, $match.2)
в первом - поддомен(ы) без http://|wwww и параметров (subdomain.somesite.ru),
а во втором - только домен (somesite.ru)
#2Sumo
→ Aaron [#1] | 21.04.10 07:37 / 07:38
www.parser.ru → | ответить → | в избранное →

http://code.google.com/p/parser3-pf/source/browse/trunk/pf/types/pfString.p#131

А уж разбить домен на части можно элементарно через string.split.
#3Misha v.3
→ Aaron [#1] | 21.04.10 08:12
www.parser.ru → | ответить → | в избранное →

да регулярки там кривые :)

на самом деле их я даже не смотрел (оно мне надо?), но например первое-же выражение, если в нём заменить ^ на ^^, $ на ^$ и до кучи \/ на / (ибо нефиг), на приведённом там URL работает, а на вашем -- не работает. если в ваш URL дописать /zigi/ (т.е. чтобы это был не URL на корень), то начинает работать.

если поставить '?' перед '(.*)', то тоже начинает работать (ну... возможно ещё на чем-нить сломается, я не особо копался)
#4Misha v.3
→ Sumo [#2] | 21.04.10 08:15 / 08:18
www.parser.ru → | ответить → | в избранное →

^parseURL[http://w3.org]. жжошь :)

а ещё ниасилил зачем split делать по "&&" вместо '&' (да и про & наверное можно помнить)
#5Sumo
→ Misha v.3 [#4] | 21.04.10 09:52
www.parser.ru → | ответить → | в избранное →

Сам в шоке. :)

Буквально в соседнем классе более корректный регэксп. Поправил разбор. Что касается &, то его в урле быть не может - заменяется на %26.
#6Aaron
→ Sumo [#2] | 21.04.10 16:52
www.parser.ru → | ответить → | в избранное →

Сумо, подскажите пожалуйста как вытащить только домен

Сумо, подскажите пожалуйста как вытащить только домен из $.host
т.е. с субдоменами sub.sub.domain.ru
только домен - domain.ru

Спасибо!
#7Sumo
→ Aaron [#6] | 21.04.10 17:01
www.parser.ru → | ответить → | в избранное →

«Подскажите, почему не работают regexp'ы [http://code.google.com/p/parser3-pf/source/browse/trunk/pf/types/pfString.p#131]»

Там я уже писал про string.split, который можно использовать, если Вы так сильно боитесь регулярных выражений.
#8Aaron
→ Sumo [#7] | 21.04.10 17:20
www.parser.ru → | ответить → | в избранное →

Вообщем сделал вот так:

$url[^parseURL[http://sub.domain.ru]]

# Хост с субдоменами:
$host[$url.host]

# Только домен:
$domain[^url.host.split[.;rh]]
$domain[${domain.1}.${domain.0}]

--
Спасибо за линк на parser-pf
#9Aaron
→ Aaron [#1] | 21.04.10 17:25
www.parser.ru → | ответить → | в избранное →

Кстати, скоро придётся переписывать регулярки с ростом популярности idn :-)

#10tezro
→ Aaron [#8] | 24.04.10 15:14
www.parser.ru → | ответить → | в избранное →
Эх, я только хотел сказать "зачем регулярки", когда можно сплитом.
#11Валентин
→ Sumo [#5] | 25.04.10 03:09
www.parser.ru → | ответить → | в избранное →
эм.. я может что-то путаю но у меня в уре стоит и работает%)
Страницы форума: ← Назад | 1 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 600 | Дальше →