我有一个以大型多维结构构成的文件,类似于 json,但不够接近,无法使用 json 库。
数据看起来像这样:
alpha {
beta {
charlie;
}
delta;
}
echo;
foxtrot {
golf;
hotel;
}
我正在尝试构建的正则表达式(对于 preg_match_all)应该匹配每个顶级父级(由 {} 大括号分隔),以便我可以递归匹配,构建一个表示数据的多维 php 数组。
我尝试的第一个正则表达式是/(?<=\{).*(?=\})/s
贪婪地匹配大括号内的内容,但这并不完全正确,因为当顶层有多个同级时,匹配过于贪婪。下面的例子:
使用正则表达式/(?<=\{).*(?=\})/s
匹配如下:
第一场比赛:
beta {
charlie;
}
delta;
}
echo;
foxtrot {
golf;
hotel;
相反,结果应该是:匹配 1:
beta {
charlie;
}
delta;
比赛2:
golf;
hotel;
那么正则表达式向导,我在这里缺少什么功能,或者我需要以某种方式用 php 解决这个问题?非常欢迎任何提示:)