PHP regex-将纯文本除以字符串对象

问题描述 投票:0回答:1

我有一个具有此内容的file.txt:

{"name":"merli"}{"name":"berta"}{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}{"name":"pol"}
{"name":"gerard"}

我正在使用此代码,但我不知道如何用“} {”分隔而不会丢失括号

$exploded = preg_split('/\r\n|\r|\n|}{/', 'file.txt');

我得到的结果是:

{"name":"merli"
"name":"berta"
"name":"ivan"}
{"name":"joan"}
{"name":"mireia"
"name":"pol"}
{"name":"gerard"}

我需要这个:

{"name":"merli"}
{"name":"berta"}
{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}
{"name":"pol"}
{"name":"gerard"}
php regex pcre
1个回答
0
投票

您可以将正则表达式与preg_match_all一起使用:

$fileContents = '
{"name":"merli"}{"name":"berta"}{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}{"name":"pol"}
{"name":"gerard"}
';

preg_match_all('/{[^{]+}+?/', $fileContents, $matches);

echo $result = join("\n", $matches[0]);

输出:

{"name":"merli"}
{"name":"berta"}
{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}
{"name":"pol"}
{"name":"gerard"}

您可以尝试here


0
投票

我想

$exploded = str_replace('}{', "}\n{", $file_contents);

足够。

© www.soinside.com 2019 - 2024. All rights reserved.