php正则问题如何取文本中间内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php正则问题如何取文本中间内容?相关的知识,希望对你有一定的参考价值。

php正则问题如何取文本中间内容?
例如以下内容:
<div class="top">
<div class="aaa">
<div class="bbb">
<div>我是好人</div>
<div>你是谁</div>
</div>
</div>
</div>
我想取出这个代码<div class="top">到本标签</div>结束中间的内容,请问怎么取呢?
如果还要分别取出以下这两句又怎么取呢?
<div>我是好人</div>
<div>你是谁</div>
请高人指教指教,万分感谢。

参考例子如下:
<?php

echo getSubstr(\'我是测试文本\',\'我是\',\'文本\');

/*以下是取中间文本的函数
getSubstr=调用名称
$str=预取全文本
$leftStr=左边文本
$rightStr=右边文本
*/
function getSubstr($str, $leftStr, $rightStr)

$left = strpos($str, $leftStr);
//echo \'左边:\'.$left;
$right = strpos($str, $rightStr,$left);
//echo \'<br>右边:\'.$right;
if($left < 0 or $right < $left) return \'\';
return substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr));

?>

function getSubstr($str, $leftStr, $rightStr)

$left = strpos($str, $leftStr);
//echo \'左边:\'.$left;
$right = strpos($str, $rightStr,$left);
//echo \'<br>右边:\'.$right;
if($left < 0 or $right < $left) return \'\';
return substr($str, $left + strlen($leftStr), $right-$left-strlen($leftStr));
参考技术A $_note=<div>我是好人</div>;
preg_match('/\<div\>(.*)\<\/div\>/')追问

请问能详细点吗?

参考技术B $zz = "/<div.+?bbb\">.*?<div>(.+?)<\/div>.*?<div>(.+?)<.+>/s";

preg_match_all($zz, $content, $find);

echo $find[1][0].' '.$find[2][0];
参考技术C preg_match 就很好用,试试吧,注意使用贪婪模式追问

能举个例子吗?

易语言如何用正则表达式来读取制定的网页文本 最好源码上,谢谢

正则代码自己写到常量里
模块为精易模块3.12
常量:
.版本 2
.常量 正则表达式, ""

全局变量
.版本 2
.全局变量 正则表达, 正则表达式类

然后代码如下:
正则表达.创建 (#正则表达式,网页文本, )
正则表达.取子匹配文本 (1, 1)追问

不用编辑框的内容等于什么什么么?很奇怪啊

追答

什么意思?网页文本=HTTP读文本()

参考技术A 网页源码呢?

以上是关于php正则问题如何取文本中间内容?的主要内容,如果未能解决你的问题,请参考以下文章

php用正则表达式怎么取双引号里面的内容??

php正则获取字符串,给定两边的字符串提取中间字符

php简单正则匹配Img标签src内容采集?

求一段PHP的正则 我要匹配文本内所有的</h1>后的内容

求个正则表达式,获取两个字中间的内容!比如“a123啊45,c”

Linux如何使用正则表达式命令?文本文件操作命令