Как в строке
Заявка: № 142898 от Аптека №Дн028 бла-бла-бла
вырезать цифры после № (может быть или нет пробел, цифр может быть от 6 до 8)?
Пробую
$arTask['TITLE'] = "Заявка: № 142898 от Аптека №Дн028 бла-бла-бла";
preg_match_all('/№\s(\d[6,8])/iu', $arTask['TITLE'], $OUT, PREG_SET_ORDER);
print_r($OUT)
получаю пустой массив.
Можно получить результат с помощью
$arTask = "Заявка: № 142898 от Аптека №Дн028 бла-бла-бла";
if (preg_match_all('/№\s*\K\d{6,8}/u', $arTask, $OUT)) {
print_r($OUT[0]);
}
См. демо-код на PHP. Если количество цифр от 6 и выше, можно удалить восьмёрку: '/№\s*\K\d{6,}/u'.
См. демо регулярного выражения.
Подробности
№ - символ №\s* - 0 и более пробельных символов\K - оператор, удаляющий весь текст из текущего буфера совпадения\d{6,8} - от 6 до 8 цифр (если заменить на плюс — 1 и более цифр)Можно так же с помощью preg_replace()
$str = 'Заявка: № 142898 от Аптека №Дн028 бла-бла-бла';
echo preg_replace('~.+№\s?(\d{6,8}).+~', '$1', $str);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости