Регулярное выражение поиска кода в строке
Регулярное выражение
Имеем строку текста, в ней могут быть даты, цифры и нужный код вида xxx-xxx, его нужно вернуть.
Условие поиска: начинается код с пробела, заканчивается пробелом или концом строки, состоит только из цифр и дефиса. Помогите составить. Спасибо.
Ответы (1 шт):
Автор решения: PotroNik
→ Ссылка
шаблон поиска:
(?<=\s|^)\d{3}-\d{3}(?=\s|$)
Где:
(?<=\s|^) - позитивный просмотр назад на любой пробельный символ, либо начало строки
\d{3}-\d{3} - три цифры, дефис, три цифры
(?=\s|$) - позитивный просмотр вперед на любой пробельный символ, либо конец строки
Автоматический код созданный на сайте: regexp101
$re = '/(?<=\s|^)\d{3}-\d{3}(?=\s|$)/m';
$str = '123-321
ewq 555-848 dsdw
dww555-555wqqwe
dww555-555 wqqwe
dww 555-555wqqwe
dww 555-555';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);