Самый простой способ - заполнить часть содержимого регулярным выражением \s*
, например, так:
/<div class="phone">\s*(?<phone>.*?)\s*<\/div>/s
Первый \s*
потребляет столько пробельных символов, сколько может, останавливаясь, когда видит первый символ в номере телефона. Затем .*?
начинает неохотно потреблять символы, останавливаясь на первой позиции, где может совпадать следующая часть регулярного выражения (\s*<\/div>
), то есть сразу после последнего символа в телефонном номере.
Имейте в виду, что первый \s*
должен быть жадным, а .*?
в указанной группе должен не быть жадным, чтобы это работало. Поэтому, если вы начнете испытывать желание сделать все квантификаторы не жадными с опцией /U
, сопротивляйтесь ей. Я упоминаю об этом, потому что некоторые люди используют это все свои регулярные выражения, что я считаю плохой практикой. Кроме того, модификатор /s
(однострочный) необходим, а модификатор /m
(многострочный) - нет.