我想獲取兩個括號([])之外的字符串。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