Preg_match不适用于跟随字符串" BE09879"

时间:2014-09-19 10:59:44

标签: php regex preg-match

我需要获取以“BE”开头的字符串,后跟数字和数字可以是任何数字。

我尝试使用以下代码,但仅当有4位数时才匹配。我需要匹配任何数字。

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

任何建议??

2 个答案:

答案 0 :(得分:1)

那就是因为([0-9] {4})告诉regexp匹配exaclty 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 :(得分: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);