Есть фраза "высота|толщина кровати(слова "кровати" может и не быть) 21 см (или нет см.)"
Нужна регулярка которая получит сантиметры. Спасибо.
Я думаю, /.*(\d+).*/ должно работать -- просто выделяет из строки подряд идущие цифры, отбрасывая всё остальное.
%(?:высота|толщина)[^\d]*\b(\d+)\b%iu
(?:высота|толщина) начинает поиск от подстрок высота или толщина, они могут быть не словами; ?: обозначает, что группу не надо захватывать в результат;
[^\d]* - от нуля и больше символов не являющихся цифрами;
\b - граница слова, в данном случае - перед цифрой не стоит буква или _;
(\d+) - 1 группа захвата состоящая из цифр, которые вам нужны;
\b - граница слова, в данном случае - за цифрой не стоит буква или _;
Модификатор i - регулярка регистро-независимая
Модификатор u - обрабатываем текст в кодировке UTF-8
Тест https://regex101.com/r/zPlsQZ/1
Продвижение своими сайтами как стратегия роста и независимости