求一正则表达式,将不是的标签一次替换

神鹰 2007-02-27 04:45:14
如题,因为<table<tr<td后面可能有标签的各种属性,所以不能只判断<table><tr><td>
...全文
381 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
神鹰 2007-02-28
  • 打赏
  • 举报
回复
谢谢了
xuzuning 2007-02-28
  • 打赏
  • 举报
回复
/<script(.*?)<\/script>/i
神鹰 2007-02-28
  • 打赏
  • 举报
回复
感谢唠叨,还有一个问题,就是我要把<script.....</script>连同两个标签之间的内容一起替换掉,我用/<script([\s\S]*)<\/script>/i我用这种方法替换时,如果页面头部和尾部都有script标签时,那么所有的都替换了,我应该怎样改这段代码,让他一个一个的替换script和标签中的内容呢
xuzuning 2007-02-28
  • 打赏
  • 举报
回复
舍近求远!

strip_tags($text, '<table><tr><th><td>');

神鹰 2007-02-28
  • 打赏
  • 举报
回复
我用"/\<[^((table)|(tr)|(td)|(\/\td)|\/\tr)|(\/\table))]([^>]{0,})\>/i"这种方法替换,不知道为什么有的能替换,有的却不能替换
yiwusuo 2007-02-28
  • 打赏
  • 举报
回复
我的代码替换思路:
1、首先将表格标签提出;
2、再将除表格标签之外的标签过滤掉;
3、再将提出的表格还原

你想用一个表达式实现,恐怕难
神鹰 2007-02-28
  • 打赏
  • 举报
回复
如果是一个一个的替换,这个我是能实现的,我要的是一个表达式替换所有的
yiwusuo 2007-02-28
  • 打赏
  • 举报
回复
<?php
$str='<table width="150" border="1" cellspacing="5" cellpadding="0">
<tr>
<td>留下表格</td>
</tr>
</table>
<p>过滤掉p只留下字</p>
<div>过滤掉div只留下字</div>';

$str=preg_replace('/<(\/?)table([^>]*)>/','<${1}1$2>',$str);
$str=preg_replace('/<(\/?)tr([^>]*)>/','<${1}2$2>',$str);
$str=preg_replace('/<(\/?)td([^>]*)>/','<${1}3$2>',$str);
$str=preg_replace('/<\/?[^123>]+>/','',$str);
$str=preg_replace('/<(\/?)1([^>]*)>/','<$1table$2>',$str);
$str=preg_replace('/<(\/?)2([^>]*)>/','<$1tr$2>',$str);
$str=preg_replace('/<(\/?)3([^>]*)>/','<$1td$2>',$str);

echo $str;
?>
神鹰 2007-02-28
  • 打赏
  • 举报
回复
过滤<table..><tr..><td..></td></tr></table>以外的所有标签
z109876543210 2007-02-27
  • 打赏
  • 举报
回复
$reg = "/<[^((table\s+)|(tr\s+)|(td\s+))]*?>/";

preg_replace($reg, "", $string);
peterxuxu 2007-02-27
  • 打赏
  • 举报
回复
(<table<tr<td)(*+)(<table><tr><td>)
yiwusuo 2007-02-27
  • 打赏
  • 举报
回复
表达得不太清楚,不知你是想过滤除<table>以外的html标签,还是过滤掉<table标签的属性

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧