$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>,<段落>应该以同样的方式对待所有人.
编辑:这不是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允许新行在文本中匹配.不在段落标记内的所有文本都将被忽略.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。