Php 将文本拆分为由指针标识的较小部分

Php 将文本拆分为由指针标识的较小部分,php,split,Php,Split,我想拆分一个字符串,如下所示: 'This <p>is</p> a <p>string</p>' '这是一个字符串' 我想得到4个字符串: 这个 是 a 字符串 所以我想一个接一个地找到及其内容来拆分它。我怎样才能保持相同的顺序呢 我可以用那个代码得到这个:$html1=strstrstr($html,因为你的针很复杂,你可以使用: $html='这是一个字符串'; //正则表达式按段落和非段落分组 $pattern='/(.*)(+?)/

我想拆分一个字符串,如下所示:

'This <p>is</p> a <p>string</p>'
'这是一个字符串

'
我想得到4个字符串:

  • 这个

  • a
  • 字符串

所以我想一个接一个地找到

及其内容来拆分它。我怎样才能保持相同的顺序呢


我可以用那个代码得到这个:
$html1=strstrstr($html,因为你的针很复杂,你可以使用:

$html='这是一个字符串

'; //正则表达式按段落和非段落分组 $pattern='/(.*)(+?)/'; //使用模式解析HTML并将结果放入$matches中 preg_match_all($pattern,$html,$matches,preg_SET_ORDER); //将包含最后的部分 $件=[]; //对于每个$match数组,第0个成员是完全匹配的 //其他每个成员都是我们想要的一部分 foreach($m)匹配,而(next($m))$pieces[]=修剪(当前($m)); 打印($pieces);//[“This”,“is

”,“a”,“string

”]

您可以与一些选项一起使用(
$s
是输入字符串):

preg#u split(“#\s*(*?

)\s*#“,$s,0,preg#u split#u NO|u EMPTY | preg#u split#u DELIM|u CAPTURE);
这将返回一个数组。对于示例输入,它将返回:

["This", "<p>is</p>", "a", "<p>string</p>"]
[“This”、“是”、“a”、“字符串”

”]

<> p> >运行

仅对<代码> p>代码>标签吗?如果你只想要你的<代码> p>代码>标签,你可以使用正则表达式捕获代码< > p> */p> < /c>。PHP的内置工具。不仅仅是在空格上拆分吗?这是一个很好的解决方案。不知道
preg\u split
有这么强大。注意,你不需要转义
/
,因为你使用
作为正则表达式的结束括号。谢谢,@beletjuice。删除了转义。
preg_split("#\s*(<p>.*?</p>)\s*#", $s, 0, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
["This", "<p>is</p>", "a", "<p>string</p>"]