我试图只从字符串中取出两个括号 ([ ]) 之间的数字。
这是我的代码:
$str = "[#123456] Some text";
preg_match('/^[#(?P<number>\w+)]/', $string, $matches);
// Returns 123456
echo $matches['number'];
有人能帮我解决这个问题吗?
编辑:我澄清了我的问题。我只需要得到括号之间的数字。到目前为止的回复会给我整个字符串中的数字。
我试图只从字符串中取出两个括号 ([ ]) 之间的数字。
这是我的代码:
$str = "[#123456] Some text";
preg_match('/^[#(?P<number>\w+)]/', $string, $matches);
// Returns 123456
echo $matches['number'];
有人能帮我解决这个问题吗?
编辑:我澄清了我的问题。我只需要得到括号之间的数字。到目前为止的回复会给我整个字符串中的数字。
如果您需要数字以及它们周围的大括号,您可以使用这个正则表达式:
preg_match('/\[#\d+\]/U', $str, $matches);
echo $matches[0];
否则,使用
preg_match('/\[#(\d+)\]/U', $str, $matches);
echo $matches[1];
或者...(编辑代码以显示为代码)
$str = preg_replace('/[^0-9]/', '', $str);
这将仅在此上下文中返回数字 [#....]
$str = "[#123456] Some text";
preg_match('/\[#(\d+)\]/', $str, $matches);
var_dump($matches);
echo $matches[1]; // 123456