Forum Webscript.Ru

Программирование => Perl => Тема начата: GrAfF от 13 Марта 2004, 16:13:19

Название: переменную из регулярного в sub
Отправлено: GrAfF от 13 Марта 2004, 16:13:19
Hi!
Помогите плиз, очень срочно нужно.
Пишу переформатилку текстов.
Код в основном состоит из строк вроде:
$text =~ s/\\n/
/g;
$text =~ s/   /   /g;

То есть вся переменная много раз обрабатывается кучей регэкспов.

Нужно вместо чисел подставлять их длину их строки, то есть как-то заменять ([0-9]*) на length($1). Но, похоже, это не поддерживается.

Как при таком построении "движка" прикрутить обработку чисел?
Название: переменную из регулярного в sub
Отправлено: ondr от 13 Марта 2004, 16:30:27
Почитай про модификатор /e в perldoc perlre
А также по теме perldoc -f study
Название: переменную из регулярного в sub
Отправлено: GrAfF от 13 Марта 2004, 18:13:02
Спасибо, почитал. В первом нашел только часть Warning on \\1 vs $1, да и там ничего не понятно. Не настолько разбираюсь в регэкспах, чтобы понять о чем там. Да про study что-то вещают про скорость, время и частоту встречи букв в английском.
Такой простой вопрос был. Надеялся на четкий ответ. :(
Название: переменную из регулярного в sub
Отправлено: Mog. от 13 Марта 2004, 19:41:50
$text="text 12345 another text 789 more text 999999999";
$text =~ s/([0-9]+)/length($1)/ge;
print "$text";

Так устроит? Тут тебе и модификатор е присутствует, который говорит о том, что правая часть рег. выражения это фрагмент выполняемого кода.
Название: переменную из регулярного в sub
Отправлено: NeoNox от 13 Марта 2004, 19:42:38
s/(\\d+)/length($1)/ge
Название: переменную из регулярного в sub
Отправлено: ondr от 13 Марта 2004, 19:43:50
Во первых вопрос мутный. Какой же ты хочешь четкий ответ? Вот зайди сюда perldoc.narod.ru, возьми pdf о регах на русском. Почитай. Вот пример http://forums.webscript.ru/showthread.php?s=&postid=93267 использования модификатора.
Во вторых на операторе study я не акцентировал внимание. Он не обязателен, хотя и может ускорить работу в твоем случае.
Название: переменную из регулярного в sub
Отправлено: GrAfF от 13 Марта 2004, 21:26:18
Регэкспы я ещё на "Парсинге XML" неплохо понял, но вот эта проблема меня поставила в тупик.
Усем огромное спасибо! ;)