Есть строка:
test-test-example-demo-1a-3321-0-3555-0
Мне нужно удалить все кроме цифр, но чтобы 1a тоже удалилось, так как по с этой цифрой стоит символ отличный от -
Я делал так:
preg_replace('/[^\d-]/', '', $str);
Но в итоге я получаю:
1-3321-0-3555-0
А нужно получить:
3321-0-3555-0
Кол-во слов в строке всегда разное.
Буду благодарен за помощь.
В одну строку регуляркой (если нужно именно регуляркой):
$text = 'test-test-example-demo-1a-3321-0-3555-0';
echo preg_replace('~^.*?((?:\d+-)+\d+).*?$~', '$1', $text);
Вот такое решение у меня получилось без регулярки:
$string = 'test-test-example-demo-1a-3321-0-3555-0';
$array = explode('-', $string);
foreach($array as $key => $value){
if(!is_numeric($value)){
unset($array[$key]);
}
}
print_r(implode('-', $array));
Результат: 3321-0-3555-0
$str = 'test-test-example-demo-1a-3321-0-3555-0-';
$str = preg_replace('/[0-9]+[a-zA-Z]/', '', $str); //удаляем все цифры после которых есть буквы
$str = preg_replace('/[a-zA-Z][0-9]*/', '', $str); //удаляем все буквы и цифры после них, если они имеются
$str = preg_replace('/-(?=-)/', '', $str);//удаляем все оставшиеся парные '-'
$str = preg_replace('/^-/', '', $str );//удаляем '-' в начале строки
$str = preg_replace('/-$/', '', $str );//удаляем '-' в конце строки
echo $str; //можно конечно все регулярные выражения собрать в одну строку, но мне проще так
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Сейчас конвертирую так: inkscape -z -e testpng -w 100 -h 100 test
Я из базы данных получаю дату публикации поста 2019-12-18 12:11:57 в таком видеЯ бы хотел выводить на сайте дату таким образом: 18 декабря, 2019