Задание. Из строк 'Таб. № 101', 'Таб. № 102', 'Таб. 103' посредством функции preg_match() извлечь табельные номера и поместить их в переменную $tabel_num_arr.
Решение:
Примечательным здесь является регулярное выражение
/Таб\. *(?:№)? *(\d+)/
В этом регулярном выражении важным моментом является незахватываемая группа, обрамляемая символами (?: )
Выражение, обрамленное этими символами, не попадает в массив $matches.
Решение:
$strings = array( 'Таб. № 101', 'Таб. № 102', 'Таб. 103', ); $matches = array(); $tabel_num_arr = array(); foreach($strings as $str) { $is_tabel_num = preg_match('/Таб\. *(?:№)? *(\d+)/', $str, $matches); if ($is_tabel_num === 1 && $matches[1]) { $tabel_num_arr[] = $matches[1]; } } var_dump($tabel_num_arr); /* Результат: array 0 => string '101' (length=3) 1 => string '102' (length=3) 2 => string '103' (length=3) */
Примечательным здесь является регулярное выражение
/Таб\. *(?:№)? *(\d+)/
В этом регулярном выражении важным моментом является незахватываемая группа, обрамляемая символами (?: )
Выражение, обрамленное этими символами, не попадает в массив $matches.
Комментариев нет:
Отправить комментарий