如何使用preg_match从给定的字符串中找出数字?

时间:2015-02-11 11:52:04

标签: php preg-match

if (
  preg_match("/^bundle id/", trim($rows[$key])) && 
  preg_match('/\d/', trim($rows[$key]), $temp))

bundle id 1 mode active
bundle id 99 mode active
bundle id 999 mode active

如何在给定的preg_match表达式中找出1,99和999。

2 个答案:

答案 0 :(得分:0)

您的第二个preg_match需要成为preg_match_all,并且正则表达式需要查找\d+,这是一个或多个数字:

preg_match_all('/\d+/', trim($rows[$key]), $temp))

$temp现在将包含一系列值:

array (size=1)
  0 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string '99' (length=2)
      2 => string '999' (length=3)

修改

以上答案是基于样本字符串是一行。

如果每一行代表不同的字符串,那么您需要做的就是将正则表达式更改为\d+

if(preg_match("/^bundle id/", trim($rows[$key])) && 
    preg_match('/\d+/', trim($rows[$key]), $temp))

答案 1 :(得分:0)

我会这样做:

preg_match("/^bundle id\s*(\d+)/", trim($rows[$key]), $match)

然后结果在$match[1]