[Moscow.pm] perlre & backtracking

Alexander Lourier aml на rulezz.ru
Вт Сен 30 10:28:10 PDT 2008


В сообщении от Вторник 30 сентября 2008 Sergey Homenkow написал(a):

> Требуется помощь.
> Делаю регексп, который выбирает N символов, причём HTML entitie должно
> считаться за 1 символ.
>
> print 'оx' =~ /(?>&#[0-9]+;|\S){3}/;
> мачиться успешно, хотя "символа" всего 2.
>
> Подскажите, где я неправ?

Регексп пытается с самого начала строки честно и без бэктрекинга найти 3 
символа подряд. Ему это не удается, и он начинает пытаться сделать то же 
самое со 2 символа, где его ждет успех - '#10'.

-- 
Alexander Lourier, http://aml.rulezz.ru


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