|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Igorr V Syurtukov 2:450/199 05 Apr 2004 19:00:00 To : Artem Chuprina Subject : почему? -------------------------------------------------------------------------------- ±Э -Artem Chuprina- для -Igorr V.Syurtukov-: IV>> $mp3=~s/( To | The | A |...| An )/\L$1/ig; IV>> ...ну не заменяет второе вхождение, если идет, к примеру "... In [...] IV>> === IV>> @array=("From","At","To","Of","On","The","For","An"); IV>> foreach $tmp(@array){$mp3=~s/(?<!\-)(\s$tmp\s)/\L$1/ig;}; IV>> === IV>> смысл работы - все эти At, To и т.д., если они не первым словом IV>> после "-" стоят и окружены пробелами опустить в нижний регистр, IV>> невзирая на их текущий регистр (ведь может быть и From и FROM и IV>> FROm). Почему не работает верхняя замена в глобале? AC> По идее, оно у тебя работать должно через одно слово. А лечится это AC> посредством нахождения в perldoc perlre подстроки "\b". Осознание AC> причин оставляется в качестве домашнего упражнения. Вспомнил про \b - граница слова. Я ей никогда не пользовался. И чем хуже вариант с \s - который для меня более прозрачный? Почему надо юзать \b и самое главное - как? (: --- * Origin: [IVS] (2:450/199) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/189740719ef1.html, оценка из 5, голосов 10
|