arrays — PHP regex — проверить, содержит ли строка заданное значение с определенным количеством случайных цифр в конце

У меня есть несколько строк в массиве:

$array = array('BE001 FIRST', 'BE01 SECOND', 'SV001 THIRD');

foreach ($array as $item) {
// preg_match('', $item);
}

Я хотел бы получить элемент массива, если он содержит «BE» + 3 любых цифр сразу после. В этом случае 1-й элемент массива.

Я не знаком с regex, но я видел примеры, как сопоставить заданное значение, но не заданное значение с определенным количеством случайных цифр в конце. Пожалуйста, помогите мне!

0

Решение

использование preg_grep:

$array = array('BE001 FIRST', 'BE01 SECOND', 'SV001 THIRD');
$res = preg_grep('/^BE\d{3}\b/', $array);
print_r($res);

Выход:

Array
(
[0] => BE001 FIRST
)
3

Другие решения

Вот моя версия:

<?php
$input = ['BE001 FIRST', 'BE01 SECOND', 'SV001 THIRD', 'BE1234 FOURTH'];
$output = [];
array_walk($input, function(&$entry) use (&$output) {
if (preg_match('/BE\d{3}([^\d]|$)/', $entry)) {
$output[] = $entry;
}
});
print_r($output);

Вывод, очевидно, таков:

Array
(
[0] => BE001 FIRST
)
1

По вопросам рекламы [email protected]