|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vladimir Lomov 2:5020/400 11 Mar 2007 16:38:15 To : Eugene Grosbein Subject : Re: Поиск и замена с русскими буквами -------------------------------------------------------------------------------- Eugene Grosbein пишет: VL>> Может кто может помочь, а то уже своих идей не VL>> хватает. VL>> Проблема: нужно в тексте в котором есть как VL>> латинские, так и русские буквы заменить лишние VL>> пробелы между словами на один пробел. Пример: VL>> This sentence is a sample. You may create your VL>> own samples . VL>> Why I need these ugly texts? To compact some VL>> e-books taken from lib.ru. VL>> Это предложение просто пример. Вы можете VL>> придумать свои собственные примеры . Зачем нунеж VL>> такие уродливые предложения ? Чтобы сжать VL>> некоторые книжки, взятые с lib.ru EG> [skip] EG> Жуть :-) EG> Делай так: EG> perl -p -i.bak -e 'use locale; s/\b\s+\b/ /g' file1 file2 file3 ... EG> И почитай man perlrun, там это разбирается с примерами. Спасибо за ответ, особенно за ком. строку и \b. Hо такой вариант с треском провалиться на запятой, точке с запятой и пр. пунктупции, например в стиле LaTeX'а: "< или <<. Hемного поправил свой предыдущий вариант: s/([-,;:\.!\?"'>]|\w|[а-яА-Я])[[:space:]]{2,}([-,;:\.!\?"'<]|\w|[а-яА-Я])/$1 $2/go; стало лучше, но если попробовать пример И еже си на небеси, да и прибудеть тебе, счастия ... то он провалиться, не сможет сжать пробелы после 'и', да и вообще после любой одно буквенной комбинации (русской конечно). - --- Best regards, Vladimir -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/6488719f3c00.html, оценка из 5, голосов 10
|