|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alexander Onokhov 2:5020/400 31 Jul 2003 13:40:31 To : Maxx L. Mazour Subject : Re: Hужны регекспы (помогите чайнику) *) -------------------------------------------------------------------------------- "Maxx L. Mazour" <piccolo@bestlawyer.net> writes: > Hужно написать перл-скпипт, который бы просеивал большой текст (на инглише) и > выделял слова по 5 признакам (один фильтр на каждый признак): > #!/usr/bin/perl -wlan # словом считаем все, что не содержит пробелов # цикл по каждому слову каждой строки(perldoc perlrun про флаги -n -a) foreach (@F) { # на каждой итерации новое слово в $_ # Are six or more letters long and contain none # of the vowels: a, e, i, o, or u. print if /\A[^aeiouAEIOU]{6,}\Z/; # Are palindromes** (spell the same both forward and backward). print if substr($_, 0, length()/2) eq reverse substr($_, -length()/2); # Contain three (or more) pairs of double letters. print if /(\w)\1.*(\w)\2.*(\w)\3/; # Have their letters in alphabetical order. # может и коряво, но что первое в голову пришло my $ab = 1; # флаг будет сброшен если не в алфавитном порядке while ( /(\w)(?=(\w?))/g ) { my $x = $1; if ($2 ne '' and ++$x ne $2) { # или lc(++$x) ne lc($2) $ab = 0; last; } } print if $ab; # Have an even number of 'a's. print if tr/aA// % 2; } -- Alexander Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: What me? (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/41606c925ad6.html, оценка из 5, голосов 10
|