PHP preg_match

时间:2012-07-30 15:23:04

标签: php preg-match

我试图只获取字符串中两个括号([])之间的数字。

这是我的代码:

$str = "[#123456] Some text";
preg_match('/^[#(?P<number>\w+)]/', $string, $matches);

// Returns 123456
echo $matches['number'];

任何人都可以帮我解决这个问题吗?

编辑:我澄清了我的问题。我只需要获得括号之间的数字。到目前为止的回复将给出整个字符串中的数字。

4 个答案:

答案 0 :(得分:2)

如果您需要数字以及它们周围的大括号,您可以使用此正则表达式:

preg_match('/\[#\d+\]/U', $str, $matches);
echo $matches[0];

否则,请使用

preg_match('/\[#(\d+)\]/U', $str, $matches);
echo $matches[1];

答案 1 :(得分:0)

使用此:

preg_match('/[0-9]*/', $string, $matches);
var_dump($matches);

有关正则表达式的更多信息,click here

答案 2 :(得分:0)

或...(编辑代码显示为代码)

$str = preg_replace('/[^0-9]/', '', $str);

答案 3 :(得分:0)

这将仅从此上下文[#....]

中返回数字
$str = "[#123456] Some text";
preg_match('/\[#(\d+)\]/', $str, $matches);
var_dump($matches);
echo $matches[1]; // 123456