2012-04-13 67 views
0

我真的很困惑如何說出這個問題。我需要採取方括號內的字符串的一部分。 請參閱例如PHP:讀取佔位符內的字符串

回覆:[115] VFA 1馮04/11/2012雙04/12/2012 MIT-1221

這被某人發送作爲郵件的主題。我需要從方括號中檢索數字115。如果有多個方括號出現,這個位置將在任何時候都是第一個

我該如何解決這個問題。

編輯

我希望我能一直得到的[]所有實例的字符串 回覆:[115] [12] VFA 1馮雙04/11/2012麻省理工學院04/12/2012 -1221

感謝

回答

2

你可以用regular expressions做到這一點:

preg_match_all('/\[(\w+)\]/', $str, $matches); 
$square_brackets = $matches[1]; // array of: "115", "12" 
+0

加思考,如果我在第一次之後再次[],它不值得 – 2012-04-13 11:24:01

+0

@duke:你可以在你的問題中包括這個其他例子以及你想要提取的數據嗎? – 2012-04-13 11:25:03

+0

我編輯過的問題 – 2012-04-13 11:28:42

1

這是有人作爲郵件的主題發送。我需要從方括號中檢索數字115。如果有超過括號來了,這個位置將是第一個在任何時候

如果它總是數字,並且總是第一個括號被包裹:

<?php 
$line = 'Re: [115]VFA 1 von 04/11/2012 bis 04/12/2012 mit-1221'; 

if(preg_match('~\[(\d+)\]~', $line, $matches) !== 0) { 
    $number = array_shift($matches); 
} 
else { // no match. 
}