Распарсить строку

Статус
В этой теме нельзя размещать новые ответы.

pikasun

Постоялец
Регистрация
23 Сен 2009
Сообщения
123
Реакции
9
Помогите на Perl распарсить строку.
_http://192.168.10.210/site/mail.ru_

Без нижних подчеркиваний разумеется
и там и там.

В итоге получить _http://mail.ru_
 
Подозреваю что не самый оптимальный вариант:
Код:
$[url]http://(?:.*)/([/url][a-zA-Z0-9\.\-]+)$
 
В таких случаях обычно оптимальные варианты не нужны, хотя для айпи есть регексп не слишком короткий :) если просто замена в небольшом тексте, то ради удобства может пострадать скорость, будет незаметно (если действие линейное), только если уж "удобно" писать, то:
Код:
$http://.*?/([^_]*)$
 
мне кажется ТС хотел это:

$(http://).*?/site/(.*)$
 
if ($ip_urls{$el}[$i]=~ s/$(http://).*?/site/(.*)$/123/) {

Поправьте чего с синтаксисом не так? Я так понимаю фильтрацию где-то промаргал?
Ругается на эту строку. Заместо 123 необходимо вставить выражение отражающее именно адрес т.е тот же (.*)

Скрипт перловый.
 
Помогите на Perl распарсить строку.
_http://192.168.10.210/site/mail.ru_
Без нижних подчеркиваний разумеется
и там и там.
В итоге получить _http://mail.ru_

только включи соотв. модификаторы соотв, либо в строку переделывай

Код:
$
    (?<=    
        http://[\d.]+/(\w+)/    # слева идет http://ip_адрес/сайт/  
    )    
    [\w-.]+                     # а затем и сам сайт, который мы ловим в "карман"
$
 
У тебя в самой регулярке встречаются символы, являющиеся ограничителями регулярки. Естестно, компилятор не сможет разобраться в этом.
Замени ограничивающие символы
Код:
f ($ip_urls{$el}[$i]=~ s{$(http://).*?/site/(.*)$}{123}) {

И не стоило копипастить того что тут тебе все понаписали.
$(Для просмотра ссылки Войди или Зарегистрируйся - конец строки, за которым идет Для просмотра ссылки Войди или Зарегистрируйся :)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху