Замена двойных, тройных, десятерных знаков препинаний.

Тема в разделе "Регулярные выражения", создана пользователем jabbaxatt, 6 окт 2012.

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

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    878
    Симпатии:
    411
    Не могу написать замену для встречаемых в текстах знаков типа
    !!!?????
    ??!!
    ...........

    Требуется приведение таких художеств к одному нормальному (первому) знаку.
    Т.е.
    ...... превратить в .
    !!!????? превратить в !
    ??!! превратить в ?

    Замены на PHP не помогают.
    PHP:
        $search = array('..','!!','??','!?','?!');
        
    $replace = array('.','!','?','!','?');
        
    $htmltemp=str_replace($search,$replace,$htmltemp);
    А регулярку не могу написать.
     
  2. crazyzubr

    crazyzubr Создатель

    Регистр.:
    26 авг 2012
    Сообщения:
    23
    Симпатии:
    15
    PHP:
    $array_replaces = Array(
    '/\.+/'=>'.',
    '/,+/'=> ',',
    '/!+\?+/'=> '!',
    '/\?+!+/'=> '?'
    // И т.д.
    );
    print 
    preg_replace(array_keys($array_replaces),array_values($array_replaces), 'sdf???!!!ghdf!!!???gdsfg.....adsfgadfg');
     
    jabbaxatt нравится это.
Статус темы:
Закрыта.