parser

Написать ответ на текущее сообщение

 

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

Вопросец про regexp...

Sanja 22.11.2002 14:44

Тут натолкнулся на сложность с regexp из Мишиной копилки (http://www.parser.ru/examples/regexp/), который обрамляет url'ы:

@matchHrefs[text]
$result[^if(def $text){^text.match[(^^|[^^="])(http:\/\/|ftp:\/\/|mailto:)([:a-z0-9~%\{\}._/?=&@,#-]+)][gi]{${match.1}<a href="${match.2}${match.3}">${match.2}${match.3}</a>}}]
#end @matchHrefs[]


(ну, для начала, там не хватает news: и aim: ;)

Предположим, нарывается этот regexp на фразу "а что мне думать по поводу этого - ссылка?" Знак вопроса будет считаться частью url. Ровно как и точка, что неправильно.

Как модифицировать оный regexp, чтобы избегать таких ситуаций?

Да, до кучи про regexp'ы:

есть мысль на одном моём форуме менять смайлики на их графические эквиваленты, чтобы облегчать чтение. Проблема в том, что даже простой смайлик :-) можно записать как
:)
:o)
:-))))
:o)))
и ещё полудюжиной способов. Никто не брался за аналогичную задачку (неохота ещё раз изобретать велосипед просто)...