Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Язык для шаманов   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.045 c
14-1121087569
oldman
2005-07-11 17:12
2005.07.31
Ни фига себе прикол!!!


4-1117688968
Strech
2005-06-02 09:09
2005.07.31
Модальные окна


3-1119343319
jiny
2005-06-21 12:41
2005.07.31
Как правильно сделать ID документа с префиксом (ЖАС-3420)?


14-1119850991
Ega23
2005-06-27 09:43
2005.07.31
Ой, народ, что вчера было!!!


1-1121101074
-virus-
2005-07-11 20:57
2005.07.31
помогите, проблема с файлом.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский