Я хочу найти позиции некоторых символов для их обработки без использования чудовищного рекурсивного и неэффективного регулярного выражения. Вот как я это делаю:Найти позиции данных символов
my @charpos=();
s/(?=([«»\n]))/push @charpos, [$1, 0+($-[0])]; "";/ge;
# sort {$a->[1] <=> $b->[1]} @charpos;
Но это решение использует «заменитель» оператор заменить с пустой строкой, это нормально? Должна ли прокомментированная строка быть раскоментирована?
Это смешно, но мне, это выглядит как чудовищный и неэффективного регулярного выражения. – 2010-11-22 19:40:11
Что вы действительно пытаетесь сделать? Получить список позиций (смещение символов), в которых в строке появляются каймы и строки (строки)? – 2010-11-22 19:42:22
@ Джонатан Леффлер Я хочу заменить «« ... «...» ... «...» ... »` с `« ... »...« ... »...» ... »`, но за некоторыми исключениями: если уровень 1 закрыт guillemet отсутствует, то он должен быть оставлен как есть, то же самое, если уровень закрытия 1 уровня отсутствует в текущей строке. – ZyX 2010-11-22 19:48:19