|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 30 May 2002 21:18:11 To : Igor Okunev Subject : Re: разбить длиннуй мессагу -------------------------------------------------------------------------------- Здравствуй, Igor Okunev. >> IO> my @parts = ($line =~ /(.{1,70})\b/g); IO> > >> IO> $line например проверялось на невозможность нахождения в >> IO> ней слов начинающихся на 'что либо', то эту проверку >> IO> этим кодом можно обойти, ну а дальше по обстоятельствам... IO> > IO> > То есть? Ты проверил $line на невозможность таких слов и положил на IO> > результат этой проверки? \b тебе не даст возможности порезать посреди IO> > слова. Впрочем, IO> нет. на результат проверки я не ложу, но по нескольку раз проверять IO> одни и теже данные тоже не стану ( до и после разделения ). В исходном IO> коде не было \G, Слушай, на эту придирку я тебе уже ответил. Своей придиркой про слово, начинающееся на 'что либо'. Мог бы и сам догадаться. IO> тогда \b (на конце) _даст_ таки мне возможность порезать IO> слово посередине, и пользовать в дальнейшем вторую половину от того IO> чего резали. Получить из строки: IO> 'Гоша любит квас' . '_'x67 IO> строки: IO> ( 'Гоша любит', IO> 'вас' . '_'x67 ) IO> вполне реально, а меня это не прикалывает, и чем меньше IO> предполагаемая длина строки, тем эти грабли становятся IO> шире, даже без злого умысла. IO> а проверка... конкретно для этой строки, IO> ну например такая: IO> if ( $line =~ /\S+\s+любит\s+(?!вас)/ig ) { IO> # продолжаем работать IO> } else { IO> # начинаем думать кого же именно, и выходим IO> } IO> использование \G также ведет к модификации данных, что для меня IO> тоже не приемлемо. ЧЕГО!? Если ты про pos(), то его любой матч модифицирует. IO> согласен, что это все может сильно надуманно. Все, что я хотел IO> сказать это то, что используя этот регексп нельзя гаранитировать IO> того, что в результате нарезки таким образом строк, из исходного IO> текста не будет удалено ни чего лишнего. Это зависит от того, как определить понятие "лишнее"... IO> Кстати, ты не учел, что :-) например фик попадет IO> под \b, потому если оно написано в конце строки или будет IO> единственным, что содержит $line то тоже похерится... Вот в это поверил. IO> Я раньше когда решал похожую задачу ничего, кроме IO> substr'инга в цикле не придумал... Hадо заменить \b на более здравый assertion. Мне просто ломы было, я скрипт для себя писал. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14454db5a23a6.html, оценка из 5, голосов 10
|