我想preg_match_all()
这个:
if(isset($matches[1])){
return $matches[1];
}else{
return false;
}
}
$lines = file('jason.txt');
$i=0;
foreach ($lines as $line_num => $line) {
$str_arr = getInbetweenStrings('"Vehicle":', ',"Buyer":', $line);
echo '<pre>';
print_r($str_arr);
}
答案 0 :(得分:0)
如果字符串是:
"Vehicle": "1992 Macho Camry CE"
这是正则表达式:
preg_match_all("/: \"?([\w ]+)/", $str, $matches, PREG_PATTERN_ORDER);
然后致电
print_r($matches);
将返回:
Array
(
[0] => Array
(
[0] => : "1992 Macho Camry CE
)
[1] => Array
(
[0] => 1992 Macho Camry CE
)
)
要获取字符串,请使用:
$phrase = $matches[1];
修改强> 由于源数据是json字符串,请使用json_decode函数转换数组中的所有数据:
$str = '[{"Vehicle": "1992 Macho Camry CE"}, {"Vehicle": "2017 OtherCar"}]';
$vehicles = json_decode($str, true);
print_r($vehicles);
Array
(
[0] => Array
(
[Vehicle] => 1992 Macho Camry CE
)
[1] => Array
(
[Vehicle] => 2017 OtherCar
)
)
答案 1 :(得分:0)
根据您的评论,您正在解析json文件。
在这种情况下,您不应该使用正则表达式或字符串函数。相反,你应该直接解析json文件。
要在多维数组结构中完成所有操作:
$array = json_decode(file_get_contents('path/to/file.json'), true);