За последние 24 часа нас посетили 16990 программистов и 1293 робота. Сейчас ищут 1374 программиста ...

Удалить всё что после последней кавычки, вместе с ней

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

  1. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Привет! Есть текст:

    "Привет!" "Этот текст необходимо оставить." А этот текст удалить /

    То есть необходимо удалить всё что после последней кавычки вместе с последней кавычкой.

    Спасибо за помощь!

    preg_replace("/\"$/", "", $teg);
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Легко, и без регулярного выражения. Где код пыток?
    --- Добавлено ---
    Ибо тебе в раздел "Сделай за меня"
     
  3. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Код (Text):
    1. preg_replace("/\".*$ /", "", $text)
    Без регулярок как?
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
  5. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Ты реально считаешь, что 30 строк кода легче чем одна?
    По факту реализация задачи есть, с тремя костылями. Я хочу упростить до одной строчки.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Конечно. Быстрее. Эффективнее. Чем регулярные, лишние операции.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    @kit, в одну строку желаешь?
    PHP:
    1. $text ='"Привет!" "Этот текст необходимо оставить." А этот текст удалить /';
    2.  
    3. echo substr ( $text, 0, strrpos ( $text, '"' ) );
     
  8. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    да))
    потому что у меня было в две строки
    Код (Text):
    1. $tmp_arr = explode("\"", $text);
    2. while ($x++<count($tmp_arr)) $new_text.=$tmp_arr[$x];
    Snx!
     
  9. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    логика не правильная
     
  10. kit

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

    С нами с:
    18 дек 2006
    Сообщения:
    331
    Симпатии:
    1
    Адрес:
    местный
    Да, код с косяком. Поэтому и написал сюда.
    --- Добавлено ---
    PHP:
    1. $text="\"Привет!\" \"Этот текст необходимо оставить.\" А этот текст удалить /";
    2. $tmp_arr = explode("\"", $teg); print_r($tmp_arr);
    3. while ($x++<count($tmp_arr)-1) if ($x<count($tmp_arr)-1) $new_text.=$tmp_arr[$x-1]."\""; else $new_text.=$tmp_arr[$x-1];