2017-09-13 9 views
0

上REGEXについてのお願い:私はこの文字列をしたいPHP

{"48":"KAPAL GAGAK"} 

regexを使用してKAPAL GAGAKになるために。私が行うための適切な方法は何ですか

9.に

/["0-9{:}] 

を使用して、これを達成したがregexは0からすべての番号をフィルタ処理するので

{"51":"KAPAL GLORY/EX PAN MARINE 2"} 

でこれを使用すると、KAPAL GLORY/EX PAN MARINEの代わりKAPAL GLORY/EX PAN MARINE 2の結果この?

答えて

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" 

を使用することをお勧めしお好みのエラー処理を追加しています。

+0

今私はどのように文字列(番号)を取り除くのですか? – Nexcom

+1

'string(number)'は関数 'var_dump'からのもので、' echo'だけすると文字列自体が出力されます – Kazz

+0

どうすればいいですか?これは 'var_dump(current($ array));'の代わりにvar_dump https://imgur.com/a/C4z4H – Nexcom

-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"; 
    } 
} 
+0

説明を追加する必要があります – Andreas

関連する問題