免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1834 | 回复: 5
打印 上一主题 下一主题

请问这个正则如何写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-17 13:45 |只看该作者 |倒序浏览
<i class="iPrdInfo">
<p><a href="/bingdian/pid:6395592/product_detail.html" target="_blank">Apple/苹果 MacBook Air MC505CH/A 11寸 64G 1.6处理器</a></p>
请问一下用正则如何匹配“Apple/苹果 MacBook Air MC505CH/A 11寸 64G 1.6处理器”这个信息呢,其中“="/bingdian/pid:6395592/product_detail.html”是变量

论坛徽章:
0
2 [报告]
发表于 2011-03-17 14:03 |只看该作者
下面的例子演示了将文本中所有 <pre></pre> 标签内的关键字(php)显示为红色。

  1. <?php
  2. $str = "<pre>学习php是一件快乐的事。</pre><pre>所有的phper需要共同努力!</pre>";
  3. $kw = "php";
  4. preg_match_all('/<pre>([sS]*?)</pre>/',$str,$mat);
  5. for($i=0;$i<count($mat[0]);$i++){
  6.     $mat[0][$i] = $mat[1][$i];
  7.     $mat[0][$i] = str_replace($kw, '<span style="color:#ff0000">'.$kw.'</span>', $mat[0][$i]);
  8.     $str = str_replace($mat[1][$i], $mat[0][$i], $str);
  9. }
  10. echo $str;
  11. ?>
复制代码
希望这个例子可以帮到你。

论坛徽章:
0
3 [报告]
发表于 2011-03-17 14:04 |只看该作者
或者:
匹配HTML标记的正则表达式(无法匹配嵌套标签):<(\S*?)[^>]*>.*?</\1>|<.*? />

你根据你的情况修改一下即可。。

论坛徽章:
0
4 [报告]
发表于 2011-03-17 15:05 |只看该作者
preg_match_all("/<i class=\"iPrdInfo\"><p><a\shref=\"(.*)\"\starget=\"_blank\">(.*)<\/a><\/p>/ix",$snoopy->results,$re)
我用这个为什么匹配不了呢 是不是<i class="iPrdInfo"> 后有个换行的原因 怎么解决呢

论坛徽章:
0
5 [报告]
发表于 2011-03-18 11:47 |只看该作者

  1. <?php
  2. $str = '<i class="iPrdInfo"><p><a href="/bingdian/pid:6395592/product_detail.html" target="_blank">Apple/苹果 MacBook Air MC505CH/A 11寸 64G 1.6处理器</a></p>';
  3. $pattern = '/<a(\S*?)[^>]*>(.*?)<\/a>/i';
  4. preg_match_all($pattern,$str,$mat);
  5. print_r($mat);
  6. ?>
复制代码
大概弄了一下,不一定适合你的实际情况,参考一下吧。

论坛徽章:
0
6 [报告]
发表于 2011-03-19 15:25 |只看该作者
学习啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP