Регулярка с числами. Удалить пробелы и после тире [закрыт]

122
10 ноября 2019, 17:00

Есть строка, которая содержит числа, — , пробелы между ними, и см: $string = 50 — 55 см

Числа могут быть разными.

Как удалить всё и оставить только последнее число: 55. Без букв, без пробелов и тире?

Пробовал использование preg_replace('/см/','',$string); но так я удалю только см

Answer 1
$string = '50 — 55 см';
echo preg_replace('/^.*?\b(\d+)\hсм$/m', '$1', $string);
Answer 2
preg_match_all('/\d+/', '50 — 55 см', $matches);
echo end($matches[0]);

Регулярное выражение: /\d+/ будет выбирать все подстроки, в которых встречается одна или более (квантификатор +), цифра (\d), а все остальные символы будут проигнорированы.

Все совпадения помещаются в массив $matches[0]. Функция end() вернёт последний элемент массива - число 55.

Answer 3

Сделал корявенько, мб есть варианты лучше:

if(preg_match('/см/i',$string)){
    $newvalue = strpos($string,"—"); //находим позицию символа
    $string = trim(substr($string,0,$newvalue)); //делим по треб. символу и удаляем возможные пробелы
}
Answer 4

Как вариант:

$string = '50 — 55 см';
$num = preg_replace('/.*\D+(\d+)\D+$/i', '$1', $string);
READ ALSO
Проблема с php,и базой данных

Проблема с php,и базой данных

При переходе по ссылке Выдаёт ошибку http://домен/indexphp

132
Редирект с страницы таксономии на index.php

Редирект с страницы таксономии на index.php

Делаю сайт на WP с использованием woocommerceУ меня есть категория hot-offers и соответственно сделан шаблон taxonomy

117
Узнать Place Id Google maps

Узнать Place Id Google maps

Есть ссылка на место в google mapsНапример https://goo

148