Я хочу эту строку:
{"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.
Как правильно это сделать?
Ваша строка выглядит 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";
}
}