Удаление необычной строки

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 1 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Здравствуйте.
    Подскажите пожалуйста, как удалить строку следующего типа:
    текст------------text-------------текст
    Необходимо удалить все --- и текст между ними.
     
  2. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    PHP:
    $text preg_replace('/-+.+-+/'' '$text);
     
    LEXAlForpostl нравится это.
  3. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Имеем текст:
    Подскажите пожалуйста, как разбить на массив.
    Разделитель
     
  4. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    PHP:
    $text preg_match_all('%@@(\w+)(\d+)\s*%i'$text$ret);
    print_r($ret);
     
  5. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    PHP:
    preg_match_all('/@@line\d+[\r\n]*([^\r\n]+)[^\r\n]*/si'$text$out);
     
  6. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Если текст имеет вид
    то регулярка, написанная выше - не работает.
    Но идею уловили правильно.
     
  7. Sanuch

    Sanuch

    Регистр.:
    25 май 2009
    Сообщения:
    207
    Симпатии:
    70
    тогда что вам помешало изменить регулярное выражение и вместо строки line подставить символьный класс?
    PHP:
    preg_match_all('/@@[a-z0-9]+[\r\n]*([^\r\n]+)[^\r\n]*/si'$text$out);
     
  8. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    708
    Симпатии:
    225
    Регулярка забирает только первую строку с
    а текст, который идёт после этой стороки до следующего
    регулярка почему-то не вырезает.

    Добавлено через 2 минуты
    Не работает :)

    P.S.
    И ещё вопрос.
    Как в тексте заменить более одного пробела подряд - только одним.
     
  9. potuga

    potuga

    Регистр.:
    22 сен 2009
    Сообщения:
    376
    Симпатии:
    91
    PHP:
    $text 'a   s          a s'
    $i 1;
    while (
    $i!=0)
      
    $text str_replace("  "" "$text$i);

    echo 
    $text;
     
    LEXAlForpostl нравится это.
Статус темы:
Закрыта.