Регулярные выражения Perl и их применение


         

Пропускаем все кроме тегов, слов


my $close_a=0; while (!/\G\z/gc) { if (/\G<(\w+)[^>]*>\s*/gc) { print "Тег $^N открылся\n"; if ($^N =~ /^a$/i) { print "Ошибка: вложенный тег A\n" if $close_a++; } } elsif (m!\G</(\w+)[^>]*>\s*!gc) { print "Тег $^N закрылся\n"; if ($^N =~ /^a$/i) { print "Ошибка: нет парного тега A\n" if !$close_a--; } } elsif (/\G(\w+)\s*/gc) { print "Найдено слово/число $^N\n"; } elsif (/\G(&#?\w+;)\s*/gc) { print "Найдена подстановка $^N\n"; } # Пропускаем все кроме тегов, слов и подстановок elsif (/\G[^<>&\w]+/gc) { } else # Нашли ошибку, сделаем сообщение об этом { my $offset=pos($_); my ($error)=$_ =~ /\G.{1,10}/gs; die "Непонятные символы\n$error\nв позиции $offset\n"; } } print "Имеется незакрытый тег A\n" if $close_a;

Эта программа напечатает следующее:

Тег html открылся Тег body открылся Найдена подстановка &lt; Найдено слово/число слово1 Найдено слово/число слово2 Найдено слово/число 1234 Найдена подстановка &gt; Тег a открылся Найдено слово/число Это Найдено слово/число ссылка Тег a закрылся Тег body закрылся Тег html закрылся


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий