我试图只获取字符串中两个括号([])之间的数字。
这是我的代码:
$str = "[#123456] Some text";
preg_match('/^[#(?P<number>\w+)]/', $string, $matches);
// Returns 123456
echo $matches['number'];
任何人都可以帮我解决这个问题吗?
编辑:我澄清了我的问题。我只需要获得括号之间的数字。到目前为止的回复将给出整个字符串中的数字。答案 0 :(得分:2)
如果您需要数字以及它们周围的大括号,您可以使用此正则表达式:
preg_match('/\[#\d+\]/U', $str, $matches);
echo $matches[0];
否则,请使用
preg_match('/\[#(\d+)\]/U', $str, $matches);
echo $matches[1];
答案 1 :(得分:0)
答案 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