Preg_match не работает для следующей строки & quot; BE09879 & quot;

Мне нужно получить строку в строке, которая начинается с «BE», а затем число и номер может быть любой цифрой.

Я попробовал следующий код, но он совпадает, только если есть 4-значный номер. Мне нужно сопоставить его для любой цифры.

$line = "ethernet card BE0987 strings allws";
preg_match('/BE([0-9]{4})/', $line, $match)

Какие-либо предложения ??

0

Решение

Это потому, что ([0-9] {4}) указывает регулярному выражению совпадать с 4 цифрами. вместо
Вы можете использовать это:

$line = "ethernet card BE0987 strings allws";
preg_match('/BE([0-9]*)/', $line, $match)

Ведьма будет совпадать с последующим нулем или более цифрами, или вы можете использовать:

$line = "ethernet card BE0987 strings allws";
preg_match('/BE([0-9]+)/', $line, $match)

ведьма будет соответствовать, после чего будет хотя бы одна цифра

1

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

Ты пробовал:

$line = "ethernet card BE0987 strings allws";
preg_match('/BE([0-9][0-9]{4})/', $line, $match);

Или вместо этого, почему бы не дать этот путь:

preg_match('/BE([0-9][0-9][0-9][0-9][0-9])/', $line, $match);

Вышеуказанное соответствует ровно 5 цифрам. Или вы можете сделать так, чтобы оно совпадало хотя бы с одной цифрой следующим образом:

preg_match('/BE([0-9]+)/', $line, $match);
1

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