[Moscow.pm] perlre & backtracking

Sergey Homenkow hsw на hsw.pp.ru
Ср Окт 1 04:40:43 PDT 2008


Приветствую!

> print 'оx' =~ /(?>&#[0-9]+;|\S){3}/;
> мачиться успешно, хотя "символа" всего 2.

Всем спасибо!

Итоговый регексп по вставке пробелов в длинные слова:
     pos($w) = 0;
     $w =~ s/
             (?:\G|(?<=\s))
             (\s*
                 (?>
                     &
                     (?:
                         \#x [0-9a-fA-F]+ |
                         \#  [0-9]+       |
                             [a-zA-Z]+)
                     ;
                 |
                     \S
                 ) {$MAX_WORD_SIZE}
             )
             (?=\S)
             /$1 /xgo;


Может кому пригодиться.


Подробная информация о списке рассылки Moscow-pm