本帖最后由 lixiaolong09 于 2010-12-06 15:12:35 编辑

解决方案 »

  1.   


    void Main()
    {
        string str = "<div class=\"propBrokerPhoto\">\r   <a href=\"http://shenzhen.anjuke.com/shop.php?bid=89676\" target=\"_blank\"><img width=\"100\" height=\"133\" src=\"http://broker/iconm.jpg\" title=\"潘英俊\"></a>\r  </div>";
    Match m =Regex.Match(str,@"(?is)<div\s*class=\W*propBrokerPhoto\b[^>]*>.*?<img[^>]*?src=(['""]?)(?<src>[^'""\s]+)\1\s*title=\1(?<title>[^'""\s]+)\1[^>]*>.*?</div>");
    if(m.Success)
    {
    Console.WriteLine(m.Groups["src"].Value);
    Console.WriteLine(m.Groups["title"].Value);
    }
    }/*
    http://broker/iconm.jpg
    潘英俊
    */
      

  2.   

    [Quote=引用 1 楼 q107770540 的回复:]
    title=\"世华地产 泥岗分行 潘英俊\"里面有多余的字或空格就显示不出来了。有问题
      

  3.   

    修改一下正则表达式 将title捕获组内的\s去掉即可(?is)<div\s*class=\W*propBrokerPhoto\b[^>]*>.*?<img[^>]*?src=(['""]?)(?<src>[^'""\s]+)\1\s*title=\1(?<title>[^'""]+)\1[^>]*>.*?</div>
      

  4.   


    恩是的
    src==(['""]?)(?<src>[^'""\s]+)\1
    title=\1
    能说明一下,这两个\1有什么作用??
      

  5.   

    1 是对第一个捕获组的反向引用
    作为是为了保证src=和title=后符号的配置出现
    可以参考
    http://blog.csdn.net/lxcnn/archive/2009/08/24/4476746.aspx
    http://topic.csdn.net/u/20101204/10/a543196e-37da-46b0-b187-7ab3fe1b08b4.html?7875