gpt4 book ai didi

php - 字符串解析帮助

转载 作者:可可西里 更新时间:2023-10-31 22:16:44 26 4
gpt4 key购买 nike

我有一个类似下面的字符串:

$string = "
<paragraph>apples are red...</paragraph>
<paragraph>john is a boy..</paragraph>
<paragraph>this is dummy text......</paragraph>
";

我想将这个字符串拆分成一个数组,其中包含在 <paragraph></paragraph> 之间找到的文本标签。例如这样的事情:

$string = "
<paragraph>apples are red...</paragraph>
<paragraph>john is a boy..</paragraph>
<paragraph>this is dummy text......</paragraph>
";

$paragraphs = splitParagraphs($string);
/* $paragraphs now contains:
$paragraphs[0] = apples are red...
$paragraphs[1] = john is a boy...
$paragraphs[1] = this is dummy text...
*/

有什么想法吗?

P.S 它应该不区分大小写,<paragraph>, <PARAGRAPH>, <Paragraph>都应该以同样的方式对待。

编辑:这不是 XML,这里有很多东西会破坏 XML 的结构,因此我不能使用 SimpleXML 等。我需要一个正则表达式来解析它。

最佳答案

如果这实际上是 XML,那么我同意其他答案。但是,如果它不是有效的 XML,而只是看起来有点像 XML,那么您应该尝试使用 XML 解析器来解析它。相反,您可以使用正则表达式:

$matches = array();
preg_match_all(":<paragraph>(.*?)</paragraph>:is", $string, $matches);
$result = $matches[1];
print_r($result);

输出:

Array
(
[0] => apples are red...
[1] => john is a boy..
[2] => this is dummy text......
)

请注意,i 表示不区分大小写,s 允许在文本中匹配新行。所有不在段落标签内的文本都将被忽略。

关于php - 字符串解析帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2519381/

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