我想要这个字符串:
{"48":"KAPAL GAGAK"}
使用KAPAL GAGAK
成为regex
。我用
/["0-9{:}]
但在
中使用此功能{"51":"KAPAL GLORY / EX PAN MARINE 2"}
导致KAPAL GLORY / EX PAN MARINE
而不是KAPAL GLORY / EX PAN MARINE 2
,因为regex
过滤了从0到9的所有数字。
这样做的正确方法是什么?
答案 0 :(得分:1)
您的字符串看起来像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"
添加您选择的错误处理。
答案 1 :(得分:-1)
$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";
}
}