-
ugnich.comНастал момент заняться оптимизацией регулярок джуика, которые я когда-то писал "на скорую руку". Если интересно проверить свои знания RegExp-ов и заодно помочь мне:
Окончательный продукт также будет полезен авторам различных клиентов и плагинов для джуика. ;)
Требуется либо улучшить качество преобразования, либо увеличить скорость. Обновления буду выкладывать. Ваши советы можно кидать в комменты к этому посту, большие куски кода — на dumpz.org
Replies (53)
-
@ugnich, @Totktonada Или скорее (?:\b|\() [если regexp'ы perl подобны тиклевским]/16 · Reply
-
/42 · Reply
-
/47 · Reply
-
@ugnich, попытался воткнуть сократить в один regexp, по идее оно так будет проходить чуть быстрее, опять же на моём cygwin скорость выросла значительно: ~2 раза, задо закомментить bold, italic, amp, lt, gt, хотел обрабатывать bold и italic и underline в одном шаблоне, но пока не получилось сходу: $txt =~ s{([\&<>]|(\s|\A)(\)([^\\n<>]+)\(\s|\Z)|(\s|\A)(\)([^\/\n<>]+)\/(\
s|\Z))}{
my ($a,$b,$c,$d,$e) = ($1,$2,$3,$4,$5);
defined $c ? (
$c =~ \* ? $b.'<b>'.$d.'</b>'.$e :
$c =~ \/ ? $b.'<i>'.$d.'</i>'.$e :
# $c =~ _ ? $b.'<u>'.$d.'</u>'.$e :
'/'
) :
$a =~ \& ? '|' :
'\\'
}gmex;/50 · Reply