Удаление подстроки

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

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

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Как удалить подстроку в переменной $text по следующему правилу:
    Подстрока начинается с первого символа переменной $text и заканчивается символом -
     
  2. pixelranger

    pixelranger

    Регистр.:
    24 июн 2006
    Сообщения:
    386
    Симпатии:
    117
    Вот, попробуй
    Код:
    <?php
    	$pos = strpos($text, "-");
        $len=strlen($text);
    if ($pos === false) {
        // не нашел
    }else{
        $res = substr($text, $pos,$len-$pos);
        echo $res;
    }
    
    ?>
     
  3. bondaf

    bondaf Постоялец

    Регистр.:
    16 мар 2010
    Сообщения:
    85
    Симпатии:
    20
    И так тоже попробуйте

    PHP:
    $text preg_replace("/^.*-/"""$text);
    или так
    PHP:
    $text preg_replace("/^[^-]*-/"""$text);
     
  4. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    737
    Симпатии:
    263
    То есть иными словами удалить от начала строки до "-" ?
    PHP:
    list(,$text) = explode('-',$text);
    Так, что ли?

    Или что значит "с первого символа переменной $text и до -" и при этом само же находится в $text? Проясни плиз.
    Дословно твоя задача решается так:

    PHP:
    $text preg_replace('#'.preg_quote($text[0]).'.*?-#','',$text);
    Но оно именно что и удалит от начала строки (первый символ $text) до "-".

    Вместо .*? подставляй символы, которые могут встречаться в подстроке, например [a-z0-9.,\s_]+ или там [^-]. Чтобы было нежадным.
     
Статус темы:
Закрыта.