我想获取两个括号([])之外的字符串。PHP的preg_match
这里是我的代码:
$str = "[#123456] Some text";
preg_match('/^[#(?P<number>\w+)]/', $string, $matches);
// Returns 123456
echo $matches['number'];
任何人能帮助我吗?
编辑:我清除了我的问题。我只需要获得括号内的数字。到目前为止的回应会给我整个字符串的数字。
我想获取两个括号([])之外的字符串。PHP的preg_match
这里是我的代码:
$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);
我编辑了我的问题,以便更清楚。我只需要括号内的数字 – Draven 2012-07-30 15:34:16
这只会从这个范围内返回数[#...]
$str = "[#123456] Some text";
preg_match('/\[#(\d+)\]/', $str, $matches);
var_dump($matches);
echo $matches[1]; // 123456
是否总是以 “#” 开始? – MasterGberry 2012-07-30 15:24:46
是的,它总是以“[#”开始,并始终以“]结尾” – Draven 2012-07-30 15:28:26
@钯击败了我:P使用他的:) – MasterGberry 2012-07-30 15:35:34