Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Alexander P. Russkih                 2:468/75       05 Apr 2004  20:36:52
 To : All
 Subject : Re: почему?
 -------------------------------------------------------------------------------- 
 
 Igorr V Syurtukov wrote:
 
 >  Регэксповый вопрос: хочу в строке (на самом деле в ней имя мп3-шки) заменить
 > кучу слов на их нижнерегистровый вариант. Делал так (старый вариант):
 > 
 > $mp3=~s/( To | The | A  |...| An )/\L$1/ig;
 > 
 >  ...ну не заменяет второе вхождение, если идет, к примеру "... In The ..."! До
 > первого отрабатывает и все тут! Почти точно помню, что раньше делало все
 > нормально, а теперь упс! Бился головой об стенку, все перепробовал - не
 > судьба. Извратился
 > так: === @array=("From","At","To","Of","On","The","For","An"); foreach
 > $tmp(@array){$mp3=~s/(?<!\-)(\s$tmp\s)/\L$1/ig;}; ===  смысл работы - все эти 
 > At, To и т.д., если они не первым словом после "-" стоят и окружены пробелами 
 > опустить в нижний регистр, невзирая на их текущий регистр (ведь может быть и
 > From и FROM и FROm). Почему не работает верхняя замена в глобале?
 
 лови... где мой боченок пива? :-)
 
 ===
 use locale;
 use POSIX qw(locale_h);
 setlocale(LC_CTYPE, 'ru_RU.KOI8-R');
 
 my $mp3 = "From The Cool On Dark Night On Me"; # и чего это я тут ляпнул? но 
 для примера сойдет :-)
 my @word_to_lc=("From","At","To","Of","On","The","For","An");
 my $lcregexp = join('|',@word_to_lc);
 
 print "$lcregexp\n";
 
 $mp3 =~ s/([^\n]$lcregexp)/lc $1/ge;
 
 print "$mp3\n";
 ===
 
 если в этом примере lc $1 заменить на \L$1 то получим следующее ругательство 
 от perl'а: Can't locate object method "L" via package "The" (perhaps you 
 forgot to load "The"?) at ./regexp_lc.pl line 13.
 
 -- 
 XMMS:
 
 --- Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.5) Gecko/20031007
  * Origin: Registered Linux User #341226 (2:468/75@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 почему?   Igorr V Syurtukov   03 Apr 2004 18:19:20 
 Re: почему?   Artem Chuprina   05 Apr 2004 17:57:29 
 почему?   Igorr V Syurtukov   05 Apr 2004 19:00:00 
 Re: почему?   Maxim Yemelyanov   06 Apr 2004 12:00:03 
 почему?   Igorr V Syurtukov   06 Apr 2004 19:44:24 
 Re: почему?   Artem Chuprina   06 Apr 2004 12:36:47 
 почему?   Igorr V Syurtukov   06 Apr 2004 19:45:16 
 Re: почему?   Artem Chuprina   07 Apr 2004 14:45:38 
 Re: почему?   Alexander P. Russkih   05 Apr 2004 20:36:52 
 Re: почему?   Alexander P. Russkih   06 Apr 2004 08:08:55 
Архивное /ru.perl/10980ce3c1947.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional