Как вытащить цифры между буквами PHP?

247
18 июня 2018, 23:50

Из строки №Дн025П1 нужно вытащить при помощи регулярки 025.

Рассчитывал, что такой пример отработает:

preg_match('/[А-Яа-я](.*)[А-Яа-я]/Uis', $str, $out);

но - нет.

Помогите правильно составить регулярное выражение.

Answer 1
$STRING = '№Дн025П1';
preg_match_all('/№([А-Яа-я]+)([0-9]+)([А-Яа-я]+)/iuU', $STRING, $OUT, PREG_SET_ORDER);
var_dump($OUT);

Необходимый элемент массива думаю найдете сами

Answer 2

Ещё вариант с использованием ретроспективной положительной проверки - будут найдены все вхождения в подстроке:

$str = '№1, №Дн153, №Дн025П1';
preg_match_all('~(?<=Дн)\d+~', $str, $out);
var_export($out[0]);

Результат:

array (
  0 => '153',
  1 => '025',
)
READ ALSO
Проблема получения UID при смене каталога

Проблема получения UID при смене каталога

Пишу программу, которая выполняет выводит в QTableWidget информацию о каталоге в виде ls -aliИнформацию из текущего каталога считывает нормально,...

255
QClipboard кладёт в буфер не те данные

QClipboard кладёт в буфер не те данные

Формирую данные в текстовом формате и отправляю их в буфер обмена с помощью QClipboardПри этом требуется обеспечить совместимость буфера обмена...

262
запись в файл в формате JSON

запись в файл в формате JSON

Мне нужно записать в jsonObject вопросы и ответы Я делаю так:

274