За последние 24 часа нас посетили 19444 программиста и 1650 роботов. Сейчас ищут 1817 программистов ...

Замена двух одинарных ковычек в строке

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

  1. UncleAndy

    UncleAndy Активный пользователь

    С нами с:
    17 мар 2011
    Сообщения:
    2
    Симпатии:
    0
    Разбираю SQL выражение. Значения в нем заключаются в одинарные кавычки, а внутри значениий одинарные кавычки можно указать их дублированием. Например, 'начало''строка''конец'. Мне нужно заменить все двойные кавычки внутри таких строк на особую последовательность символов.
    Пробовал я вот так:
    Код (Text):
    1.  
    2. preg_replace("/'(.*)''(.*)'/s", "'\\1&&doublequite&&\\2'", $str);
    В результате заменяется только последнее вхождение.

    Подскажите, пожалуста, как это сделать?
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    str_replace уже не в моде?

    http://php.net/manual/en/function.str-replace.html

    правда нужно будет смотреть, как бы строка не была такого типа
    ' this is the string, ending with single quote \''
     
  3. UncleAndy

    UncleAndy Активный пользователь

    С нами с:
    17 мар 2011
    Сообщения:
    2
    Симпатии:
    0
    В общем, задача уточняется.

    Смысл в том, что изначально есть строка с набором пар "имя"=значение разделенными запятыми. "Значение" может быть любым выражением со строками в одинарных кавычках, с функциями, с любым содержимым внутри строк (одинарные кавычки внутри строки обозначаются как две одинарные кавычки). Вот мне и надо разобрать такую строку.