Задание. Из строк 'Таб. № 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.
Комментариев нет:
Отправить комментарий