你好,我有一個正則表達式的問題。獲得字符串的數組正則表達式正則表達式
例如我有這樣的文字
$textMessage = "|nif|<00/00/03364301P>|lat|<not set>|long|<not set>|deviceId|<1F26DE6896ADC816-001346E604E7>|messageId|<70154>";
,我想獲得一個數組這樣
$data = array(
array("nif" => "00/00/03364301P"),
array("lat" => "not set") // etc
)
從字符串中的所有數據,我想這個功能。
function getArrayDataSMS($textMessage){
$regexType = '/\|([a-zA-Z]+)\||<[\d]+>/';
$rowValueData = preg_match_all($regexType, $textMessage, $matches, PREG_SET_ORDER);
foreach ($matches as $key => $match) {
$arrayData[trim($match[1])] = trim($match[2]);
}
return $arrayData;
}
但響應不正確
array(2) {
[0]=>
string(5) "|nif|"
[1]=>
string(3) "nif"
}
array(3) {
[0]=>
string(6) "<4545>"
[1]=>
string(0) ""
[2]=>
string(4) "4545"
}
這方面有任何想法? 。
或只是爆炸了,轉移,由三三兩兩塊,分配的foreach新容器 – Ghost
我不認爲使用正則表達式是這裏的好辦法。 –
你真的想要一個多維數組還是一個簡單的關聯數組? –