как убрать дубликаты ?

Тема в разделе "Регулярные выражения", создана пользователем zetar, 14 янв 2008.

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

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    есть текст в нем маркеры как урбать повторение маркеров
    пример

    Код:
    ....текст...#MARK1# #MARK1#....текст...
    
    одинаковых маркеров не должно быть рядом
    между ними может быть от 1 до нескольких пробелов

    :thenks:
     
  2. Karlasan

    Karlasan Постоялец

    Регистр.:
    7 дек 2007
    Сообщения:
    79
    Симпатии:
    157
    надо убрать идущие подряд одинаковые маркеры, или все повторения одного маркера из текста?

    Добавлено через 18 минут
    удаление идущих подряд повторяющихся маркеров, разделенных пробелами:

    PHP:
    <?
    $mask="#MARK1#";
    $text="....текст...#MARK1#          #MARK1#     #MARK1#....текст...
    ....текст...#MARK1#          #MARK1#     #MARK1#....текст...
    ....текст...#MARK1#          #MARK1#     #MARK1#....текст..."
    ;

    $mask=str_replace("#","\\#",$mask); //подслешиваем решетки
    $out=preg_replace("/(".$mask."[ ]*)(".$mask."[ ]*)+/",$mask,$text);
    $out=str_replace("\\#","#",$out); //удаляем добавленые слеши
    print $out;
    ?>
    выдаст вот это:
    Код:
    ....текст...#MARK1#....текст...
    ....текст...#MARK1#....текст...
    ....текст...#MARK1#....текст...
    
     
    zverOK и zetar нравится это.
  3. Starik777

    Starik777 Постоялец

    Регистр.:
    19 апр 2008
    Сообщения:
    66
    Симпатии:
    35
    Не учтено что могут быть не только пробелы но и запятые, что тогда?
     
  4. zetar

    zetar

    Регистр.:
    18 май 2007
    Сообщения:
    497
    Симпатии:
    348
    постановку задачи прочитай !

    зы модераторы закройте тему :ah:
     
Статус темы:
Закрыта.