我想在{
和},
之间进行解析。我搜索并已经尝试了许多来自stackoverflow的解决方案,但并非所有解决方案都可以正常工作。
对我来说,最好的解决方案是Extracting all values between curly braces regex php,但是当嵌套花括号时,该解决方案将失败。我尝试了{\K[^}]*(?=},)
,例如:ID:1181不匹配。
样本数据
{
Id: 1180
Name: "ABCD"
Type: 1
Json: <"
Some sample data
">
},
{
Id: 1181
Name: "EFGH"
Type: 4
More: Value
More: Value
Json: <"
Some sample data "{ with more curly braces }" and "{ more curly braces }";
">
},
{
Id: 1182
Name: "IJKL"
Type: 2
Json: <"
Some sample data
">
},
答案 0 :(得分:1)
答案 1 :(得分:0)
没有这种格式的规范,就没有干净的解决方案来解析输入。使用正则表达式只能部分帮助您,因为“ Json”字段中可能包含实用内容。
如果您需要快速而又肮脏的解决方案,则可以使用以下事实,即冰壶在生产线的开头。
$m = preg_split('~^},$~m', $data);
或
preg_match_all('/\{.*?^\},$/ms', $str, $matches, PREG_SET_ORDER);
从那里开始,您可以随意处理数据。