Помогите новичку с регуляркой на php

322
21 декабря 2016, 04:47

Есть фраза "высота|толщина кровати(слова "кровати" может и не быть) 21 см (или нет см.)"

Нужна регулярка которая получит сантиметры. Спасибо.

Answer 1

Я думаю, /.*(\d+).*/ должно работать -- просто выделяет из строки подряд идущие цифры, отбрасывая всё остальное.

Answer 2
%(?:высота|толщина)[^\d]*\b(\d+)\b%iu

(?:высота|толщина) начинает поиск от подстрок высота или толщина, они могут быть не словами; ?: обозначает, что группу не надо захватывать в результат;

[^\d]* - от нуля и больше символов не являющихся цифрами;

\b - граница слова, в данном случае - перед цифрой не стоит буква или _;

(\d+) - 1 группа захвата состоящая из цифр, которые вам нужны;

\b - граница слова, в данном случае - за цифрой не стоит буква или _;

Модификатор i - регулярка регистро-независимая

Модификатор u - обрабатываем текст в кодировке UTF-8

Тест https://regex101.com/r/zPlsQZ/1

READ ALSO
Bitrix vs. OpenServer: ошибка mbstring.func_overload

Bitrix vs. OpenServer: ошибка mbstring.func_overload

Для установки Bitrix в кодировке UTF-8 требуется параметру mbstringfunc_overload присвоить значение 2 (по умолчанию там 0)

1790
getImageList MIGX вывод слайдера

getImageList MIGX вывод слайдера

Не подскажите почему на главной выводит слайдер через migx а на другой страницу не выводит

782
Дублируются записи

Дублируются записи

Подскажите где ошибся

695
Битрикс. Fatal error при отправке формы

Битрикс. Fatal error при отправке формы

При оправке формы с сайта время от времени получаем ошибку

743