在网上找半天没有找到
技术有限确实对正则表达式不熟悉
所以求各位大虾帮帮忙!
下面是我找到的js版本的跪求PHP版本!!<script>
function pregstr(){
/* 第一步 提取内容部分 */
var reg=/[\s\S]*?<td\sclass=f>((?:(?!<\/td>)[\s\S])+)<\/td>(?:(?!<td\sclass=f>)[\s\S])+/gi;
var txt=document.getElementById("txt").value;
var str=txt.replace(reg,"$1★<br>");/* 第二步 去掉除<br>外的所有标签 */
var reg2=/<\/?(?:(?!br|>)[\s\S])+[^>]*>/ig;
str=str.replace(reg2,"");/* 第三步 去掉后面有"百度快照"等字眼的部分*/
var reg3=/(?:<br>(?:(?!<br>).)*){2}★/ig;
str=str.replace(reg3,"<br />"); document.getElementById("show").innerHTML=str;
}
</script>
技术有限确实对正则表达式不熟悉
所以求各位大虾帮帮忙!
下面是我找到的js版本的跪求PHP版本!!<script>
function pregstr(){
/* 第一步 提取内容部分 */
var reg=/[\s\S]*?<td\sclass=f>((?:(?!<\/td>)[\s\S])+)<\/td>(?:(?!<td\sclass=f>)[\s\S])+/gi;
var txt=document.getElementById("txt").value;
var str=txt.replace(reg,"$1★<br>");/* 第二步 去掉除<br>外的所有标签 */
var reg2=/<\/?(?:(?!br|>)[\s\S])+[^>]*>/ig;
str=str.replace(reg2,"");/* 第三步 去掉后面有"百度快照"等字眼的部分*/
var reg3=/(?:<br>(?:(?!<br>).)*){2}★/ig;
str=str.replace(reg3,"<br />"); document.getElementById("show").innerHTML=str;
}
</script>
$str = '需要替换的字符串。';
$reg = '/[\s\S]*?<td\sclass=f>((?:(?!<\/td>)[\s\S])+)<\/td>(?:(?!<td\sclass=f>)[\s\S])+/gi';
$sub = '$1★<br>';echo preg_replace($reg,$sub,$str); //输出结果
$str = file_get_contents("http://www.baidu.com/s?wd=google&ch=&tn=360se_dg&bar=");
$reg="/[\s\S]*?<td\sclass=f>((?:(?!<\/td>)[\s\S])+)<\/td>(?:(?!<td\sclass=f>)[\s\S])+/i";
preg_match($reg,$str,$match);
//echo htmlspecialchars($match[0]);
$reg2="/<\/?(?:(?!br|>)[\s\S])+[^>]*>/i";
$text = preg_replace($reg2,"",$match[0]);
$reg3="/(?:<br>(?:(?!<br>).)*){2}★/i";
$text = preg_replace($reg2,"<br />",$text);
echo $text;
?>
大概思路是这样 如果你的正则没错的话 其中$match为数组 可以遍历后处理
原来Js和php正则表达式是一样的
不过写错了一点
<?php
$str = file_get_contents("http://www.baidu.com/s?wd=google&ch=&tn=360se_dg&bar=");
$reg="/[\s\S]*?<td\sclass=f>((?:(?!<\/td>)[\s\S])+)<\/td>(?:(?!<td\sclass=f>)[\s\S])+/i";
preg_match($reg,$str,$match);
//echo htmlspecialchars($match[0]);
$reg2="/<\/?(?:(?!br|>)[\s\S])+[^>]*>/i";
$text = preg_replace($reg2,"",$match[0]);
$reg3="/(?:<br>(?:(?!<br>).)*){2}★/i";
$text = preg_replace($reg3,"<br />",$text);
echo $text;
?>