里的内容", "upDate": "2021-05-28T17:21:45+08:00" }

正则替换里的内容

imbigsnake1 2010-07-14 09:58:24
rt,要将一个网页源代码中<script></script>中间的内容替换成空格,该如何写啊??
...全文
249 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dleno 2010-07-15
  • 打赏
  • 举报
回复
preg_replace("/(<script[^>]*?>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);

Dleno 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 woshimajia0005 的回复:]

引用 3 楼 dingsongtao 的回复:

preg_replace("/(<script[^>]*?>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);


想问下高手,这里的 "'\\1'.' '.'\\3'" 什么意思啊
[/Quote]
\\1是正则第1个括号里的内容,\\3是正则第3个括号的内容

不直接弄 <script> ,而是 (<script[^>]*?>)是因为并不是所有的script开始标记都只有<script>。
还有可能会有<script language='***'>或其他什么

步慢生错 2010-07-15
  • 打赏
  • 举报
回复
其实script前面还要有\s*因为< script>也是可以运行的。
另外有人正则<script[^>]*?>这个问号多余了吧。
greenoldman 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 woshimajia0005 的回复:]

引用 3 楼 dingsongtao 的回复:

preg_replace("/(<script[^>]*?>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);


想问下高手,这里的 "'\\1'.' '.'\\3'" 什么意思啊
[/Quote]

前面的括号 ‘(’里的内容。


$pattern = '/<script.*?>(.*?)<\/script>/i';
$replacement = "<script> </script>";

$a = preg_replace($pattern, $replacement,$string);
zlcqupt 2010-07-15
  • 打赏
  • 举报
回复


床上等您 2010-07-15
  • 打赏
  • 举报
回复
preg_replace('/<script.*>([\d\D])<\/script>/i','',$string);
foolbirdflyfirst 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 woshimajia0005 的回复:]

引用 3 楼 dingsongtao 的回复:

preg_replace("/(<script[^>]*?>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);


另外,为什么不直接弄 <script> ,而是 (<script[^>]*?>)
[/Quote]
你的script标签都肯定没有任何属性的吗?是的话可以直接用<script>
foolbirdflyfirst 2010-07-15
  • 打赏
  • 举报
回复
preg_replace('/(?:<script[^>]*>)(.*?)(?:<\/script>)/is', ' ', $string);
woshimajia0005 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dingsongtao 的回复:]

preg_replace("/(<script[^>]*?>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);
[/Quote]

另外,为什么不直接弄 <script> ,而是 (<script[^>]*?>)
woshimajia0005 2010-07-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dingsongtao 的回复:]

preg_replace("/(<script[^>]*?>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);
[/Quote]

想问下高手,这里的 "'\\1'.' '.'\\3'" 什么意思啊
wisword 2010-07-15
  • 打赏
  • 举报
回复
preg_replace('/<script[^>]*>([.\s]*)<\/script>/is', ' ', $string);
wisword 2010-07-15
  • 打赏
  • 举报
回复
preg_replace('/<script>([.\s]*)<\/script>/is', ' ', $string);
CunningBoy 2010-07-14
  • 打赏
  • 举报
回复
preg_replace("/(<script>)(.*)(<\/script>)/e", "'\\1'.' '.'\\3'", $html_body);
CunningBoy 2010-07-14
  • 打赏
  • 举报
回复
preg_replace('/<script>(.*)<\/script>/is', ' ', $string);
正则测试工具简介 正则测试工具顾名思义是用于正则表达式测试的工具,当然也可以做为日常一般数据处理工具,对正则数量的话这个工具可以给你带来极大的便利。有时我们经常需要对html页面源代码进行数据过滤分析,所以工具提供了直接采集html的功能。输入网址,然后点击后面的按钮采集得到html。接着就在下面输入正则表达式,点击下面按钮处理检索结果。 正则表达式学习请打开文件夹的“Microsoft Windows 脚本技术.chm”,依次展开树“Windows 脚本技术 - VBScript - 正则表达式简介”,认真学习吧,需要耐心和不停的试验,学好了绝对是一把利器。我以前学习都要写vb代码来测试,现在大家可以直接使用这个软件来测试了。不过建议还是多写写代码代码有好处没坏处,加深印象。 界面上所有按钮对应的功能: 【下载代码】下载前面url的页面源代码,可在设置设置采集页面代码的Charset模式 【完全匹配】测试字符串是否和内容匹配,对应正则对象的test方法,返回True或者False 【检索结果】对表达式开始处理,输出所有匹配项目。默认是整个匹配结果和括号捕获匹配的子项都显示,要调整内容可以在“设置”处理 【全部替换】就是正则表达式替换,对应正则对象的replace方法,比如将上面匹配的内容换成特定的字符,支持$1这样的捕获。 【设置】程序的一些参数都可以在这设置。比如设置采集网页是否按utf8模式,显示结果是否只显示括号捕获内容,已经设置界面语言等。 特殊功能: 1.左键快速三击窗体空白处可以生成vb代码 2.双击网址处会变成红色,生成的代码会包含下载改网址的函数 3.双击替换按钮后的输入框会变成红色,生成的代码会包含正则替换的代码 4.点击网址、表达式、替换表达式输入框后的箭头会显示所有历史使用的网址或表达式 5.在数据处理区双击会显示出一个对话框,勾选删除回车或制表符,鼠标移开后生效 6.有时需要用到多次正则替换,那么可以一次写多个表达式,表达式之间用>NEXT>隔开 7.按快捷键CTRL+F可以调出搜索框,输入内容后按搜索按钮相关内容会被标记为红色 8.按快捷键CTRL+R可以调出常用正则库。双击选择表达式会自动填入到软件上 您自己可以打开软件旁边的reg.txt进行自行扩充或修改。注意格式,说明文字和后面必须用制表 符来隔开。如果是替换表达式,会涉及到表达式和替换后的内容,请用~~间隔开来。 针对上面的第6条专门举个多次过滤html代码的例子: 网 址:http://www.kujiang.com/read/book/2579/76288 表达式:<script.*?>[\s\S]*?script>|[\s\S]*?|<[^>]*?>|&[a-z]*?;>NEXT>[ \t]+>NEXT>([\r\n] ?)+ 替换表达式:>NEXT> >NEXT>\r\n 点击按钮“全部替换为”,你会得到很纯净的文字。 下面再提供一个采集双色球开奖号的范例: 网 址:http://datachart.500.com/ssq/history/history.shtml 表达式:(\d{5})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d) 点击按钮“检索结果”,如果要结果好看点就在设置把主匹配和行号显示都设为False sysdzw QQ: 171977759 邮箱: sysdzw@163.com http://hi.baidu.com/sysdzw 1:26 2011-01-18

21,886

社区成员

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

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