我需要获取以“BE”开头的字符串,后跟数字和数字可以是任何数字。
我尝试使用以下代码,但仅当有4位数时才匹配。我需要匹配任何数字。
$line = "ethernet card BE0987 strings allws";
preg_match('/BE([0-9]{4})/', $line, $match)
任何建议??
答案 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);