Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
блин ну не черта не понимаю!!! -(((( 10.12.04 17:38 Число просмотров: 2807
Автор: dron <Ivanov Andrey> Статус: Member Отредактировано 10.12.04 17:44 Количество правок: 1
|
> Всё проще: > > То, что ты хочешь, имеет следующий формат: > > http:\/\/(\w\.){2,}\w{2,4} > > Это Тебе и надо искать. НО! После него могут идти ещё > какие-то символы. Соответственно, надо указанное выражение > заключить в круглые скобки (тогда совпадение запишется в > переменную $1), а после сразу указать ".*?$" - то есть мы > будем искать последнее вхождение подстроки (знак вопроса > обозначает, что поиск будет соответствовать совпадению с > минимальной длинной). Итого код: > > $text=~m/(http:\/\/(\w\.){2,}\w{2,4}).*?$/; > > В переменной $1 лежит то что требуется. Код писал "на лету" > - возможно, где-то ошибся. Если не работает, поправим :-) В > общем, думаю, суть ясна. бЛИН НУ НЕ ЧЕРТА НЕ ПОНИМАЮ!!! -((((
в доках написано что
*? - 0 и более, а не последнее вхождение, короче я сделал так вроде работает:
while ($text =~m/http.{1,9}([^\/|%|\;]{1,100}\.){1,7}[a-z|0-9|:|_]+/g)
после http идет обычно ://, но иногда они полность либо частично заменены %3A%2F%2F
затем ищем что-то наподобие www., или yandex. или rambler., соответсвенно так может быть несколько раз ну и напоследок любой набор букв без точки на конце т.е. ru com или org, все это деоается пока не встретится '/' или % (%2F == '/') (что оначает http://www.yandex.ru/.....) мне нужен кототкий путь, ну и также убрал ';' так как есть варианты www.xxx.ru;rf=yyy;h=llаа. Вот вроде все, как сделать проще не знаю (может посоветуете? сталкиваюсь с регулярными выражениями третий раз в жизни (до этого формат мак-алреса пытался через регулярные выражения проверить) а с перлом - первый раз
|
|
|