谷歌回马枪:高调招聘重振中国业务    2010-09-07 20:47:46

登陆|免费注册|会员中心|招贤纳士|手机留言|联系我们

 
 

好好学习网--正则求助

作者:网络文章来源:互联网浏览次数:10 发表时间:2010-09-07返回列表

=======================第一页=======================

楼  主:$str=<img src="www.myurl.com"><a href="www.links.com">;

我想匹配这些网址,正则怎样写?


自己写了一个,感觉好像是对的,但就是匹配不出来,请高手们指点
<?php
$str=<img src="www.myurl.com">
<a href="www.myurl.com">;
$mod="/[(<img src)|(<a href)]=\"(.*)\"/iU";
preg_match_all($mod,$str,$arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
楼 1: 1# xingfou 可以显示
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [0] => c="www.myurl.com"
  6.             [1] => f="www.myurl.com"
  7.         )

  8.     [1] => Array
  9.         (
  10.             [0] => www.myurl.com
  11.             [1] => www.myurl.com
  12.         )

  13. )
复制代码

楼 2:[0] => Array

        (

            [0] => c="www.myurl.com"

            [1] => f="www.myurl.com"

        )
应该是这样才对:
[0] => Array

        (

            [0] =>src="www.myurl.com"

            [1] =>href="www.myurl.com"

        )
楼 3:
  1. /\b(src|href)=\"([^^]*?)\"/i
复制代码

楼 4:
  1. $mod    =   "/\b(src|href)=\"([^^]*?)\"/i";
  2. preg_match_all($mod,$str,$arr);
复制代码

楼 5:你再看看
楼 6:成了不?我这显示已经可以了,未知你那边?
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.             [0] => src="www.myurl.com"
  6.             [1] => HREF="www.myurl2.com"
  7.         )

  8.     [1] => Array
  9.         (
  10.             [0] => src
  11.             [1] => HREF
  12.         )

  13.     [2] => Array
  14.         (
  15.             [0] => [url]www.myurl.com[/url]
  16.             [1] => [url]www.myurl2.com[/url]
  17.         )

  18. )
复制代码

楼 7:差不多了哥们,还有点小问题,能否把[1]的数组去掉
Array
(
    [0] => Array
        (
            [0] => src="www.myurl.com"
            [1] => href="www.myurl.com"
        )

    [1] => Array
        (
            [0] => src
            [1] => href
        )

    [2] => Array
        (
            [0] => www.myurl.com
            [1] => www.myurl.com
        )

)
楼 8:虽然能去 但去它作甚 你只需要用到第三个元素
楼 9:我倒是比较想咨询一下,有些写法很不正规的时候什么办法。

<a href="http://......>喜悦国际村</ a>
<a href=http://......>喜悦国际村</ a>
...

各种各样的,我估计是编辑把这些小东东弄没了,可浏览器是能认得出来的。我前段时间抓的时候发觉挺郁闷的....

=======================第2页=======================

楼 1:也许可以使用一些html修复的代码,把代码修复成正规的html
再进行处理
楼 2:php tidy是否可以
楼 3:
php tidy是否可以
shmiya 发表于 2010-7-7 16:09
我用C#写的应用软件抓的
楼 4:如果是匹配链接地址这种简单的活不用tidy出马
  1. $clips = array();
  2. $str   =   <a href=http://www.google.com>;
  3. preg_match(~<a.+href=["\]?([^"\\s>]+)~is, $str, $clips);
  4. echo $clips[1];
复制代码

楼 5:比较的麻烦,如果单是引号去了还无所谓,如果后面还有class什么的就麻烦了,看看谁还有好的解决办法
楼 6:我一般使用php来做抓取
当然了,有些人比较喜欢桌面程序,这样php就不合适了
楼 7:不会很麻烦 这种正则就认准了属性值的规则就行
首先是href如果想加src的也行 无非是(?:href|src)就解决了
之后是等号(?:href|src)=
等号之后无非是有没有引号和哪种引号的问题(?:href|src)=["]?
属性值里不能出现以下几种字符:空白、大于号和引号也就是(?:href|src)=["]?([^">\s]+)
楼 8:
不会很麻烦 这种正则就认准了属性值的规则就行
首先是href如果想加src的也行 无非是(?:href|src)就解决了
之后是等号(?:href|src)=
等号之后无非是有没有引号和哪种引号的问题(?:href|src)=["]?
属性值里不能出 ...
村长夫人 发表于 2010-7-8 14:38
额,关键的就是空格和引号 ...  应该差不多了

感谢用户[互联网用户]  IP[38.107.191.84]  时间[2010-09-07 20:50:10]提供辛勤劳动!

返回列表回到顶部

相关问题信息:好好学习网--关于phplist 的问题。

相关问题信息:好好学习网--如何查询然后插入数据库记录

相关问题信息:好好学习网--php可以直接启动exe吗?

相关问题信息:好好学习网--怎么安装Php呢?

相关问题信息:好好学习网--php_memcached.dll 谁有?

相关问题信息:好好学习网--怎样重新载入数据

相关问题信息:好好学习网--一个问题

相关问题信息:好好学习网--诚聘技术支持

相关问题信息:好好学习网--求 Php如何存入图片到 mssql数据库里啊??

相关问题信息:好好学习网--请教各位大大,这是什么编码

相关问题信息:好好学习网--微薄同步工具底层实现方式(欢迎拍砖)

相关问题信息:好好学习网--求助PHP访问方式问题

相关问题信息:好好学习网--取得选择框的值

相关问题信息:好好学习网--抓取搜索结果的时候,如何防止域名被封?

相关问题信息:好好学习网--如何实现在线客服系统

相关问题信息:好好学习网--请问下中文地址的伪静态怎么写啊

相关问题信息:好好学习网--IIS是不是不支持这种格式啊?/index.php/archives/1

相关问题信息:好好学习网--如何连接序号显示呢

相关问题信息:好好学习网--cookie可以解决这件事儿吗?

相关问题信息:好好学习网--连续数字不能执行