Как удалить символы от начала строки до определенного символа?
Как удалить символы от начала строки до определенного символа на PHP?
Чтобы от подобных: 83-smartfony, 59-planshety, 94-noutbuki осталось только smartfony, noutbuki, planshety.
Пытался через str_replace('^(.*)/(\d+)-', '', $word);, не получилось.
Ответы (2 шт):
Функция str_replace не поддерживает регулярные выражения в качастве аргумента $search. Используйте preg_replace.
Если надо удалить всё до первой буквы, можно использовать
$string = preg_replace('~^\P{L}+~u', '', $string);
Тут ^\P{L}+ находит начало строки (^) и затем одну и более (+) символов, отличных от букв (\P{L}).
См. пример работы регулярного выражения.
См. пример кода на PHP:
$strs= ["83-smartfony","59-planshety","94-noutbuki"];
foreach ($strs as $string){
echo preg_replace('~^\P{L}+~u', '', $string) . PHP_EOL;
}
// => smartfony
// planshety
// noutbuki
Если нужно удалить цифры и знак дефиса в начале строки, используйте
$string = preg_replace('~^\d+-~', '', $string);
Если есть символ разделитель, то лучше использовать вызов функции explode
print_r(explode('-','55-fsfsdgs',2));
Вернет
Array
(
[0] => 55
[1] => fsfsdgs
)
Более подробно можно прочитать тут: www.php.net