我想這個字符串:詢問有關正則表達式在PHP
{"48":"KAPAL GAGAK"}
使用regex
成爲KAPAL GAGAK
。我實現了這個使用
/["0-9{:}]
但
{"51":"KAPAL GLORY/EX PAN MARINE 2"}
導致KAPAL GLORY/EX PAN MARINE
,而不是KAPAL GLORY/EX PAN MARINE 2
因爲regex
過濾所有號碼從0到9
什麼是應該做的正確的方法使用該這個?
我想這個字符串:詢問有關正則表達式在PHP
{"48":"KAPAL GAGAK"}
使用regex
成爲KAPAL GAGAK
。我實現了這個使用
/["0-9{:}]
但
{"51":"KAPAL GLORY/EX PAN MARINE 2"}
導致KAPAL GLORY/EX PAN MARINE
,而不是KAPAL GLORY/EX PAN MARINE 2
因爲regex
過濾所有號碼從0到9
什麼是應該做的正確的方法使用該這個?
你的字符串看起來像JSON
我會建議使用http://php.net/manual/en/function.json-decode.php
$json = '{"51":"KAPAL GLORY/EX PAN MARINE 2"}';
$array = json_decode($json, true);
var_dump(current($array)); // string(29) "KAPAL GLORY/EX PAN MARINE 2"
不要添加你所選擇的錯誤處理。
$tests = ['{"48":"KAPAL GAGAK"}', '{"51":"KAPAL GLORY/EX PAN MARINE 2"}', 'not pass throught'];
foreach($tests as $test){
// json_decode way
$obj = json_decode($test, true);
if($obj){
echo array_values($obj)[0]."\n";
}
// preg_match way
preg_match('/"([^"]*)"}/', $test, $matches);
if($matches){
echo $matches[1]."\n";
}
}
你應該添加一些解釋 – Andreas
它工作。現在我該如何擺脫字符串(數字)? – Nexcom
'字符串(數字)'來自'var_dump'函數,如果你只是'echo',那麼只是字符串本身被打印出來 – Kazz
如何做到這一點?它看起來像這樣使用var_dump https://imgur.com/a/C4z4H – Nexcom