regex
Получение цены из строк вида 1,4 rub., 1 rub., $ 1,54
-
регулярка
Пояснение регулярки
- Надо извлечь из строки ту часть, которая состоит из цифр. Между цифрами может быть знак препинания точка или запятая. Знаков препинания может и не быть
([.,]\d+)?— знаки препинания имеют смысл только если после них есть цифра.()?проверяет, что группа может встретиться 0 или 1 раз(?:...)— незахватывающая группа. То есть найденный результат по такому паттерну не попадёт в$matches. Можно и не использовать.(?<price>...)— именованная группа. Найденный результат получит имя. В$mathesпоявится поле'price', куда запишется найденный результат- После этого останутся только цифры и знак препинания между ними. Чтоб php мог такую строку сконвертировать в число — надо возможную запятую сменить на точку с помощью
str_replace
-
логика получения цены из строки