Текущий архив: 2005.07.31;
Скачать: CL | DM;
ВнизЯзык для шаманов Найти похожие ветки
← →
Kerk © (2005-07-06 20:30) [0]Пытаюсь на перле реализовать "кликабельность" ссылок.
Т.е. текст http://sex.com должен заменяться на <a href=http://sex.com>http://sex.com</a>
Пишу вот такой регэксп:$url =~ s/(http:\/\/.+)([,|\s])/<a class=fileinfolink href=$1>$1<\/a>$2/g;
Отлично выделяет ссылки, которые ограничены в конце пробелом. Запятую же игнорирует и идет до следующего пробела. Кто виноват и что делать?
← →
Kerk © (2005-07-06 20:56) [1]Всем спасибо за внимание. Вопрос закрыт. Правильный ответ:
$url =~ s/(http:\/\/.+?)(,|\s)/<a class=fileinfolink href=$1>$1<\/a>$2/g;
1:0 в пользу телезрителей.
P.S. Viva la Perl
← →
Просто Джо © (2005-07-06 21:54) [2]
> [1] Kerk © (06.07.05 20:56)
> Правильный ответ:
>
> $url =~ s/(http:\/\/.+?)(,|\s)/<a class=fileinfolink href=$1>$1<\/a>$2/g;
Это была викторина "найдите 5 отличий"?
;-)
← →
Kerk © (2005-07-07 10:30) [3]Да. Обожаю перл за такие штуки :)))
← →
Ega23 © (2005-07-07 10:39) [4]2 Kerk © (06.07.05 20:30)
Поисковик порнушный пишешь? :о)
← →
Kerk © (2005-07-07 10:41) [5]Ega23 © (07.07.05 10:39) [4]
Нет. Просто пример такой привел, чтоб был понятнее и ближе народу. :o)
← →
Agent13 © (2005-07-07 10:46) [6]
> Нет. Просто пример такой привел, чтоб был понятнее и ближе
> народу. :o)
Ну так и писал бы http://www.delphimaster.ru :)
← →
inic © (2005-07-07 11:06) [7]Kerk © (06.07.05 20:30)
<ФЛУД>
Страшен все-таки перла синтаксис :(
</ФЛУД>
← →
Kerk © (2005-07-07 12:00) [8]inic © (07.07.05 11:06) [7]
Страшен все-таки перла синтаксис :(
Зато сколько смысла в ОДНОЙ строке :)
На каком языке ты бы решил сабж более элегантно? :)
← →
inic © (2005-07-07 12:53) [9]Kerk © (07.07.05 12:00) [8]
Не разбираюсь в этой сфере (правда пытался Perl заучить, но хватило меня только на час прочтения туториала), но мне кажется нечитабельность языка может привести к долгим поискам совершенных ошибок (а они всегда бывают), с другой стороны компактность конечно плюс. Каждому свое, но я бы все же решал такие задачи через PHP (как-то ближе он мне).
Если PHP и Perl понятия разного уровня и я что-то путаю - извиняйте :)
ЗЫ Под "страшностью" имел в виду не уродливость, а сложность ;)
← →
Alex Konshin © (2005-07-07 13:26) [10]Мне приходится писать и на Perl тоже. Язык для мазохистов, которые любят создавать себе трудности, а потом героически их преодолевать.
Синтаксис отвратительный, это ж надо умудрится вставить в язык столько контекстных зависимостей. Куча значков со специальным смыслом, причем смысл тоже в разных контекстах может быть разным. Ничего большого делать просто нельзя - поддержка доконает. Если код чужой, то вообще труба. Документация ужасная, хуже может быть только ее отсутствие.
Компктность? Да время на набор нормального названия функции или оператора с лихвой окупается читабельностью кода. Искать же ошибку в перловке - да в гробу я видел такую компактность.
Отличный пример того, как не нужно создавать языки.
← →
Alex Konshin © (2005-07-07 13:30) [11]Kerk © (07.07.05 12:00) [8]
Зато сколько смысла в ОДНОЙ строке :)
На каком языке ты бы решил сабж более элегантно? :)
APL.
Справедливости ради нужно сказать, что APL вообще читать нельзя.
← →
Игорь Шевченко © (2005-07-07 13:32) [12]
> APL
Ага. Только характеристики в твоем посте [10] надо умножить на 3 :)
Write-only language
← →
TUser © (2005-07-07 13:34) [13]> но мне кажется нечитабельность языка может привести к долгим поискам совершенных ошибок (а они всегда бывают)
Перл этим, конечно, грешит, но г.о. долгий поиск ошибок в нем связан с отсутствие строгой типизации и саморастущими массивами. Скриптовый язык - чего с него взять.
← →
Ломброзо © (2005-07-07 13:37) [14]Alex Konshin © (07.07.05 13:26)
Мне приходится писать и на Perl тоже. Язык для мазохистов, которые любят создавать себе трудности, а потом героически их преодолевать.
Я категорически против!
Синтаксис отвратительный, это ж надо умудрится вставить в язык столько контекстных зависимостей. Куча значков со специальным смыслом, причем смысл тоже в разных контекстах может быть разным.
Это в зависимости от стиля. Можно использовать соглашения Java/С++, использовать пакеты - тогда код выглядит стройным и красивым. Если не нравится - можно и так, что чёрт ногу сломит.
Документация - вполне на уровне. Есть perdoc - консольная, есть в HTML.
← →
TUser © (2005-07-07 13:46) [15]Любой язык провоцирует использовать свои возможности. Вот пример - недавно писал на VBA, а там при желании можно не требовать обязательного объявления переменных. Долго материался пока искал опечатку в названии переменной (из-за чего получалась совершенная чушь). Хотя ведь знал, что нельзя так, что некаширно это - но спровоцировался сделать попроще. Так и с перлом, - если на нем писать, то начинается использование "матерных" конструкций, а потом пляски с бубном. ИМХО.
← →
Ломброзо © (2005-07-07 13:49) [16]TUser © (07.07.05 13:46)
Любой язык провоцирует использовать свои возможности. Вот пример - недавно писал на VBA, а там при желании можно не требовать обязательного объявления переменных.
ФффФ. option explicit
Так и в перле так же. Не нравятся переменные из ниоткуда - use strict. Есть шанс наступить на грабли с массивами - пишем класс-обёртку, отслеживающую выход за границы массива.
--------
DMJS 0.6 | http://dmjsclient.narod.ru
← →
TUser © (2005-07-07 13:50) [17]Я говорю о том, что если есть возможность не использовать эти опции - то нет-нет да поддаешься.
← →
Alex Konshin © (2005-07-07 14:13) [18]Ломброзо © (07.07.05 13:49) [16]
Так и в перле так же. Не нравятся переменные из ниоткуда - use strict. Есть шанс наступить на грабли с массивами - пишем класс-обёртку, отслеживающую выход за границы массива.
Вот я и говорю - создать трудности, чтобы потом их героически преодолеть.
То, что это скриптовый язык - не значит, что он обязан быть нетипизированным. Лично у меня есть интерпретатор с языком со строгой типизацией и с со сравнимыми возможностями. Так этот код читают и исправлят люди, которые видят его впервые после небольшого вводного объяснения основных концепций.
Да и нетипизированность тоже не оправдание. Например, REXX - тоже нетипизированный, но замечательно читается и достаточно мощный. И конструкций в нем очень мало.
Просто очевидно, что автор Perl не имел проекта языка перед его созданием. Ну вот объясните мне, зачем нужно было в разных контекстах по-разному обзывать один и тот-же hash (это я про % и $)?
Почему нельзя было сделать нормальные описания параметров функций?
Почему для выборки аргумента функции используется набор значков, неужели нельзя было ввести какой-нибудь arg(i)? Или он настолько длинный, что рука отвалится печатать?
И еще - я говорю не по наслышке, мне довольно много приходится сталкиваться с Perl на работе.
← →
Kerk © (2005-07-07 14:16) [19]Alex Konshin © (07.07.05 14:13) [18]
неужели нельзя было ввести какой-нибудь arg(i)?
Это уже придирка.$_[i]
(или даже сразу@_
) тоже нормально смотрится.
← →
Ломброзо © (2005-07-07 14:32) [20]Alex Konshin © (07.07.05 14:13)
Просто очевидно, что автор Perl не имел проекта языка перед его созданием.
Тут согласен, многие вещи вводились в перл не иначе как под наркотическим вдохновением. Но справедливости ради нужно отметить, что сам Уолл сотоварищи в своих книжках призывают писать аккуратно и жертвовать компактностью в тех случаях, когда нужна ясность.
Ну вот объясните мне, зачем нужно было в разных контекстах по-разному обзывать один и тот-же hash (это я про % и $)?
Хе. Фиг его знает. В одном случае - это аналог стековой переменной, во втором случае - что-то типа ссылки. Это я уже подзабыл.
Почему нельзя было сделать нормальные описания параметров функций?
Почему для выборки аргумента функции используется набор значков, неужели нельзя было ввести какой-нибудь arg(i)? Или он настолько длинный, что рука отвалится печатать?
Ффф. Какой-такой-набор? или shift, или @_. Это пустяки. Нормальные описания - это что подразумевается? Есть прототипы, их как правило хватает. sub mysub($$@) и т.п.
И еще - я говорю не по наслышке, мне довольно много приходится сталкиваться с Perl на работе.
Аналогично. Полгода за ним просидел, кемелбук знал наизусть. Единственное, что бесит - это то, что к перлу быстро привыкаешь, а реюзабельный код написать сложно, вот и получается, что перловые скрипты затем плодятся на винте в изобилии, как тараканы.
В общем, ну их, эти холиворы. Хороший язык. Сижу вот текстовый документ в XML парсю. Удобно.
← →
Alex Konshin © (2005-07-07 14:37) [21]Не, несогласные мы.
Хреновый язык. Парсить и на нормальных языках можно.
← →
Polevi © (2005-07-07 14:47) [22]например xslt :)
← →
palva © (2005-07-07 17:47) [23]Если нужно преобразовать какой-то текст, нарезать на части, снабдить заголовками, хитрым образом переименовать файлы, то perl очень даже подходит. Скрипт один раз отработал, - и можно его выбросить. Во всяком случае perl-скрипт прекрасная замена bat-файлу. Опять таки можно из perl и excel запустить и ADO, то есть сохранить результат работы в офисе или в базе данных. Можно, конечно использовать VBA или VBS, и регулярные выражения в VBA можно использовать, но мне perl больше нравится.
← →
TUser © (2005-07-07 17:56) [24]Можно про рег. выражения в VBA по-подробнее?
← →
DiamondShark © (2005-07-07 18:38) [25]
> Можно про рег. выражения в VBA по-подробнее?
Это я в экселе попробовал:
Sub Zzz()
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
re.Pattern = ".+"
Debug.Print re.Test("qweqweqe")
End Sub
описание объекта тута:
http://msdn.microsoft.com/library/en-us/script56/html/vsobjRegExp.asp
Страницы: 1 вся ветка
Текущий архив: 2005.07.31;
Скачать: CL | DM;
Память: 0.52 MB
Время: 0.042 c