|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Igor Okunev 2:5020/400 30 May 2002 18:59:15 To : Artem Chuprina Subject : Re: разбить длиннуй мессагу -------------------------------------------------------------------------------- Hi, On May 29, 2002 at 06:47, Artem Chuprina wrote: > IO> my @parts = ($line =~ /(.{1,70})\b/g); > > IO> $line например проверялось на невозможность нахождения в > IO> ней слов начинающихся на 'что либо', то эту проверку > IO> этим кодом можно обойти, ну а дальше по обстоятельствам... > > То есть? Ты проверил $line на невозможность таких слов и положил на результат > этой проверки? \b тебе не даст возможности порезать посреди слова. Впрочем, нет. на результат проверки я не ложу, но по нескольку раз проверять одни и теже данные тоже не стану ( до и после разделения ). В исходном коде не было \G, тогда \b (на конце) _даст_ таки мне возможность порезать слово посередине, и пользовать в дальнейшем вторую половину от того чего резали. Получить из строки: 'Гоша любит квас' . '_'x67 строки: ( 'Гоша любит', 'вас' . '_'x67 ) вполне реально, а меня это не прикалывает, и чем меньше предполагаемая длина строки, тем эти грабли становятся шире, даже без злого умысла. а проверка... конкретно для этой строки, ну например такая: if ( $line =~ /\S+\s+любит\s+(?!вас)/ig ) { # продолжаем работать } else { # начинаем думать кого же именно, и выходим } использование \G также ведет к модификации данных, что для меня тоже не приемлемо. согласен, что это все может сильно надуманно. Все, что я хотел сказать это то, что используя этот регексп нельзя гаранитировать того, что в результате нарезки таким образом строк, из исходного текста не будет удалено ни чего лишнего. > проверка на невозможность нахождения слов, начинающихся на 'что либо', > будет безуспешной в любом случае :-) логично, тогда дадим этой магической комбинации символов название 'что_либо' :-) Кстати, ты не учел, что :-) например фик попадет под \b, потому если оно написано в конце строки или будет единственным, что содержит $line то тоже похерится... Я раньше когда решал похожую задачу ничего, кроме substr'инга в цикле не придумал... -- With best regards, Okunev Igor mailto: igor@prv.mts-nn.ru http://www.mts-nn.ru/~gosha --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/13511e19997e7.html, оценка из 5, голосов 10
|