您可以简单地循环使用字符串字符,而根本不涉及\r
和\n
字符。找到{
,找到}
,并在$temp
中将所有字符插入其中,如下所示。
代码段:
<?php
$str = '{"name":"merli"}{"name":"berta"}{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}{"name":"pol"}
{"name":"gerard"}';
$result = [];
$len = strlen($str);
for($i = 0;$i < $len;++$i){
while($i < $len && $str[$i] != '{') $i++;
$temp = '';
while($i < $len && $str[$i] != '}') $temp .= $str[$i++];
$temp .= '}';
$result[] = $temp;
}
print_r($result);
演示: https://3v4l.org/1OFen
,
我想
[FindsBy(How = How.XPath,Using = "//*[@id=\"ContentPlaceHolder1_btnClear\"]")]
public IWebElement btnClear { get; set; }
足够了。
而且文件内容看起来像无效的json ,因此将其修复会更好。
,
您可以使用preg_match_all
:
$fileContents = '
{"name":"merli"}{"name":"berta"}{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}{"name":"pol"}
{"name":"gerard"}
';
// $matches is the array containing each matche found
preg_match_all('/{[^{]+}+?/',$fileContents,$matches);
// to rearrange $matches as plaintext
echo $result = join("\n",$matches[0]);
输出:
{"name":"merli"}
{"name":"berta"}
{"name":"ivan"}
{"name":"joan"}
{"name":"mireia"}
{"name":"pol"}
{"name":"gerard"}
您可以here试试。
这还将捕获{"name":"..."} {"name":"..."}
和{"name":"..."}everyOtherUnexpectedChar{"name":"..."}
之类的文本。
,
您无法执行此操作,因为拆分时会删除定界符。您必须创建更复杂的preg_split,或者必须将replace和split结合在一起。试试这个:
$content = preg_replace('/\r\n|\r|\n/','',$content);
$content = preg_replace('/}{/','},{',$content);
$exploded = preg_split('/,/',$content);
本文链接:https://www.f2er.com/2898595.html