Регулярное выражение

Markus

Новичок
Регулярное выражение

есть такой запрос
preg_match_all("/web\/pos=(\d{1,})/", $str2, $m);

выдает
Array
(
[0] => Array
(
[0] => web/pos=1
[1] => web/pos=2
[2] => web/pos=3
[3] => web/pos=4
[4] => web/pos=5
[5] => web/pos=6
[6] => web/pos=7
[7] => web/pos=8
[8] => web/pos=9
[9] => web/pos=10
)

[1] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
[9] => 10
)

)


как написать чтобы еще и домены собирал?
 

uninside

Новичок
эээ. а поконкретнее пример? что на входе и как должно быть на выходе
 

Markus

Новичок
сорри
вот так примерно (входе)

<div class="title">
<A tabindex="8" onClick="r(this,'web/pos=7')" href="http://www.i-media.ru/services/" target=_blank><b>Реклама</b> <b>в</b> <b>Интернете</b> - I-MEDIA - агентство <b>рекламы</b> <b>в</b> <b>интернете</b></A>
</div>

-~{}~ 19.12.05 20:22:

или же по домену www.i-media.ru получить


Array
(
[0] => Array
(
[0] => web/pos=7
[
)

[1] => Array
(
[0] => 7
)

[2] => Array
(
[0] = > 'http://www.i-media.ru/services/'
)

)
 

uninside

Новичок
попробуй добавить еще одну функцию регекспа чтобы собирала домені /href\=\"([\w\.\-])+\"/i

-~{}~ 19.12.05 19:28:

или это принципиально собирать все в одном регекспе?
 

uninside

Новичок
а, ну тогда если порядок строгий, что onClick всегда идет перед href. то проще
preg_match_all("/web\/pos=(\d{1,}).*?href=\"([\w\.\-])+\"\>/", $str2, $m);
 

uninside

Новичок
а тю, я забыл про протокол
исправить надо там: .*?http=\"http:\/\/([\w\.\-\/])+

справления подчеркнуты
 

Markus

Новичок
preg_match_all("/web\/pos=(\d{1,}).*?href=\"http:\/\/([\w\.\-\/])+\"\>/", $str2, $m);

делаю так, пусто

-~{}~ 19.12.05 20:45:

в этих вслех слешах плюсах и минусах просто можно запутатся

-~{}~ 19.12.05 20:46:

странно не работает
 

uninside

Новичок
да, там явно лишнее было (я не проверял просто)
вот, заработало
preg_match_all("/web\/pos=([\d]+).*?href=\"http:\/\/([\w\.\-\/]+)/", $test, $m);
 
Сверху