gpt4 book ai didi

php - 将嵌套文本转换为字符串

转载 作者:搜寻专家 更新时间:2023-10-31 20:43:20 26 4
gpt4 key购买 nike

我目前正在使用 PHP,但我想还有其他编码语言可以更好地处理这个问题。如果您对其他可能更好的编码语言有任何建议,请告诉我。

我正在尝试将嵌套文本转换为单独的字符串。这有点难以解释,因为英语不是我的母语,所以我将写一个例子来说明我想要完成的事情。

来源:

foo {
bar tree;
bar ball/sand;
snafu {
string;
}
random {
nested {
value;
bohica;
}
}
}

目标:

foo bar tree
foo bar ball/sand
foo snafu string
foo random nested value
foo random nested bohica

到目前为止,我的最佳尝试:

foreach($curlybrace as $stance){
$semicolon = explode(';',$string);
foreach($semicolon as $break){
$result = 'set ' . $curlybrace[0] . $break .'<br />';
echo $result . '<br />';
}
}

在我上面的代码中,我尝试使用几个 PHP 函数,如 str_replacetrimpreg_replacepreg_split , implode, explode 通过删除留下的花括号来修改结果,但我无法做到这一点。

非常感谢有关如何使这项工作正常进行的所有提示和帮助。

最佳答案

这里的这个片段只是逐个字符地遍历数组。并决定 {, }, 是向上还是向下一步,或者是否需要打印实际的字符串。

$buf = "";
$brace_level = 0;
$words = array();
for ($i = 0; $i < strlen($text); $i++) {
switch ($text[$i]) {
case '{':
$words[$brace_level] = trim($buf);
$buf = "";
$brace_level++;
break;
case '}':
unset($words[$brace_level]);
$brace_level--;
unset($words[$brace_level]);
break;
case ';':
$words[$brace_level] = trim($buf);
$buf = "";
print implode(" ", $words)."\n";
break;
default:
$buf .= $text[$i];
}
}

Online demo

关于php - 将嵌套文本转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17154833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com