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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : denis v. yastrebov                   2:5020/400     01 Jul 2003  20:03:39
 To : Alexandr Boydak
 Subject : Re: White Space
 -------------------------------------------------------------------------------- 
 
 Alexandr
 You wrote to denis v. yastrebov on Mon, 30 Jun 2003 20:32:14 +0400:
 
 dy>> Hу и вот Вам рецепт.
 AB>
 dy>> ===CODE=======================
 dy>> use locale;
 dy>> use POSIX qw (locale_h);
 dy>> setlocale(LC_CTYPE, "Russian_Russia.1251"); # Это моя
 dy>> платформа, свою укажите сами
 AB>
 dy>> $str = "В. В. Пупкин";
 dy>> print "Original: ".$str."\n";
 dy>> $str =~ s/(\w.)\s*(\w.)\s*(\w+)/$1~$2~$3/;  # пробелы
 dy>> все-таки надо ставить!!!
 AB>
 AB> Hе факт... см. ГОСТ
 AB>
 dy>> print "Substituted: ".$str;
 dy>> ===CODE END===================
 AB>
 AB> Ладно, меняем входные условия... и получаем:
 AB>
 AB> Original: и т. д. по нарастающей
 AB> Substituted: и т.~д.~по нарастающей
 AB>
 AB> Ы-ы?
 AB>
 AB> И как быть с такими сокращениями, как "и т.д.", их ведь
 AB> тоже твой участок кода за инициалы примет? Как он учитывает
 AB> прописные буквы?
 
 Учитесь правильно ставить задачи.
 
 Что было написано:
 
 AB> Строка передается из программы DTP, например "В. В. Пупкин", и надо
 
 обеспечить
 
 AB> анализ строки, уборку пробела между инициалами, и вставку некоего
 
 "символа"
 
 AB> неразрывного пробела (неважно какого, хоть " ", потом вызывавшая
 
 программа
 
 AB> сама переведет в нужный вид в нужных терминах эту конструкцию) между
 
 инициалами
 
 AB> и фамилией. Естественно, такие вещи проще всего и быстрее делать на
 
 сабже
 
 AB> регулярными выражениями, я думаю, вы со мной согласитесь.
 
 Решение было предложено.
 
 Если же, Одно дело -- написать макрос для VIm, которому
 Вы будете предлагать то, что отберете сами, другое --
 анализировать целостный входной поток. В этом случае задача
 выливается в синтаксический анализатор с возможностями
 экспертной системы. Почему? Ответьте себе сами. Может,
 кто-то и сможет уместить обработку всех возможных ситуаций
 в десяток строк, тогда я охотно и сам воспользуюсь результатом.
 
 AB> И, наверное, ты не понял. Мне нужно РАСШИРИТЬ список
 AB> символов, понимаемых регекспами перла как пробельные (white
 AB> space): либо набором многосимвольных строк, либо, на худой
 AB> конец, несколькими символами. То есть, грубо говоря, чтобы
 AB> пробельными символами перл считал не только пробел,
 AB> табуляцию и т.д., а еще и такие многосимвольные
 AB> конструцкции, как "<b>" и "</b>", к примеру. Или еще
 AB> символы с кодами 145, 146, 147 (dec). Причем HЕ УДАЛЯТЬ, а
 AB> считать их пробельными и оставлять как есть.
 
 В один регэксп этого не сделать. Поищите, может
 исполнители найдутся во-первых и возьмут немного
 во-вторых.
 
 Проблема пределов возможной автоматической обработки
 авторского набора в свое время обсуждалась в ru.tex.
 Почитайте ее архив. Я с тех пор пользуюсь решением
 В. Вагнера и в поисках большего не рыпаюсь.
 
 ----
 denis v. yastrebov
 denisy@psychiatrist.ru
 http://www.psychiatrist.ru
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5
  * Origin: Talk.Mail.Ru (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 White Space   Alexandr Boydak   20 Jun 2003 13:44:32 
 Re: White Space   Konstantin Tokar   20 Jun 2003 21:47:50 
 White Space   Andrew Vetlugin   21 Jun 2003 18:19:09 
 White Space   Serg Chervjakov   21 Jun 2003 19:02:47 
 Re: White Space   denis v. yastrebov   30 Jun 2003 01:48:19 
 Re: White Space   Alexey Mahotkin   30 Jun 2003 08:58:40 
 White Space   Alexandr Boydak   30 Jun 2003 21:32:14 
 Re: White Space   denis v. yastrebov   01 Jul 2003 20:03:39 
 Re: White Space   Mikhail V. Basov   01 Jul 2003 09:31:41 
Архивное /ru.perl/64888727cf4b.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional