Тестовая программа

Когда в ходе программирования на Perl программисту требуется напсать регулярное выражение, часто бывает трудно определить, что именно делает шаблон. Часто выясняется, что шаблон совпадает с большим или меньшим количеством символов, чем предполагалось. Также совпадение может найтись ранее, чем вы ожидали, или позднее, или Следующая программа позволяет протестировать шаблон на нескольких строках и узнать, что и где совпадает:

#!/usr/bin/perl
while (<>) { # Чтение данных по одной строке
chomp;
if (/ВАШ ШАБЛОН/) {
print "Matched: |$`<$&>$'|\n"; # Специальные переменные
} else {
print "No match: |$_|\n";
}
}

Тестовая программа написана для программистов, а не для конечного пользователя; об этом легко догадаться хотя бы потому, что она не выводит никаких подсказок или информации об использовании. Программа получает любое количество входных строк и проверяет каждую строку по шаблону, который подставляется на место строки ВАШ ШАБЛОН. Для каждой строки, в которой будет найдено совпадение, три специальные переменные ($`, $& и $') показывают, где именно оно произошло. Так, для шаблона /match/ с входными данными beforematchafter результат будет выглядеть так: «|beforeafter|». Угловые скобки показывают, с какой частью строки совпал шаблон. Если в совпадение включаются лишние символы, вы это немедленно увидите.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Perl на эту тему:
Автоматические переменные совпадения
Границы слов
Добавление пропусков (/x)
Другие модификаторы
Жизненный цикл переменных частичных совпадений