Выделить 2 вхождения regex

Рейтинг: -1Ответов: 2Опубликовано: 21.06.2023

Есть строка : 10.3/3.7/5.3

Как через регулярку выделить только первое и последнее значение, Только 10.3 и 5.3 Всю голову сломал Буду очень благодарен за помощь.

использовать надо для удаления этих знаков через preg_replace

Это размеры # д/в/ш, используется это в модуле загрузки товаров на сайт, и там есть вроде можно использовать только preg_replace для какой-то кастомной модификации входящих данных.

Я подумал что если использовать preg_replace (выделить все кроме первого значения) заменить на "" И останется одно значение которое я смогу грузить на сайт. Далее выделить все кроме второго значения и заменить на "" а оставшиеся значение загрузить на сайт, и после уже выделить все кроме последнего значения заменив на "" а что останется загрузить на сайт.

Ответы

▲ 0Принят

Регулярное выражение совпадает со всей строкой и выделяет группу между слешами. Замена указывает на группу. После замены в строке остаётся только выделенная группа:

<?php
$pattern = '#.*/(.*)/.*#';
$replacement = '\\1';
$string = '10.3/3.7/5.3';
echo preg_replace($pattern, $replacement, $string);
?>
$ php replace.php

3.7
▲ 0

Спасибо большое за помощь. В результате собрав все мнения с разных источников решил проблему так: У нас $val = "10.3/3.7/5.3";

1) Длина: explode('/', $val)[0] // 10.3
2) Высота: explode('/', $val)[1] // 3.7
3) Ширина: explode('/', $val)[2] // 5.3