22190·6枚入创意鱼形密封夹(557)·322·套·1·0·无·2010-5-19·10·2.79999995231628··<p>说明:吃了一半的零食,扔掉太可惜了,留着吧要么就会变软,要么就不太新鲜了。现在好了,有食品保鲜封口夹来解决您的小问题。只要在开口处轻轻一夹,就能在相当长的时间里保持食品的香脆新鲜。6枚入,三种造型搭配。</p> <p><img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201005190523363891.jpg" /></p>·/NewWebPic/BigPic/201005190520298422.jpg·/NewWebPic/SmalPic/201005190520338735.jpg·/NewWebPic/BigPic/201005190520298422.jpg··0.052·7*2.5*0.8CM·PP·10·136·OL-557·362··HQS-Y32992·0·1900-1-1 0:00:00·2010-5-19 17:24:27·0··0··0·100·300·242·封口夹·0·0··20100527·0·0·>22191·6枚入创意鱼形密封夹(557)·322·套·1·0·无·2010-5-19·10·2.79999995231628··<p>说明:吃了一半的零食,扔掉太可惜了,留着吧要么就会变软,要么就不太新鲜了。现在好了,有食品保鲜封口夹来解决您的小问题。只要在开口处轻轻一夹,就能在相当长的时间里保持食品的香脆新鲜。6枚入,三种造型搭配。</p> <p><img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201005190523363891.jpg" /></p>·/NewWebPic/BigPic/201005190520298422.jpg·/NewWebPic/SmalPic/201005190520338735.jpg·/NewWebPic/BigPic/201005190520298422.jpg··0.052·7*2.5*0.8CM·PP·10·136·OL-557·362··HQS-Y32992·0·1900-1-1 0:00:00·2010-5-19 17:24:27·0··0··0·100·300·242·封口夹·0·0··20100527·0·0·>22192·6枚入创意鱼形密封夹(557)·322·套·1·0·无·2010-5-19·10·2.79999995231628··<p>说明:吃了一半的零食,扔掉太可惜了,留着吧要么就会变软,要么就不太新鲜了。现在好了,有食品保鲜封口夹来解决您的小问题。只要在开口处轻轻一夹,就能在相当长的时间里保持食品的香脆新鲜。6枚入,三种造型搭配。</p> <p><img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201005190523363891.jpg" /></p>·/NewWebPic/BigPic/201005190520298422.jpg·/NewWebPic/SmalPic/201005190520338735.jpg·/NewWebPic/BigPic/201005190520298422.jpg··0.052·7*2.5*0.8CM·PP·10·136·OL-557·362··HQS-Y32992·0·1900-1-1 0:00:00·2010-5-19 17:24:27·0··0··0·100·300·242·封口夹·0·0··20100527·0·0·>



 
正则提取信息如上
现在想提取:<p>说明:吃了一半的零食,扔掉太可惜了,留着吧要么就会变软,要么就不太新鲜了。现在好了,有食品保鲜封口夹来解决您的小问题。只要在开口处轻轻一夹,就能在相当长的时间里保持食品的香脆新鲜。6枚入,三种造型搭配。</p> <p><img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201005190523363891.jpg" /></p>详细信息里面的<IMG>信息,下载图片到指定文件夹 同时插入数据库插入入数据库后:
<p>说明:吃了一半的零食,扔掉太可惜了,留着吧要么就会变软,要么就不太新鲜了。现在好了,有食品保鲜封口夹来解决您的小问题。只要在开口处轻轻一夹,就能在相当长的时间里保持食品的香脆新鲜。6枚入,三种造型搭配。</p> <p><img alt="" src="/NewWebPic/FckPic/201005190523363891.jpg" /></p>图片路径变为本地 高手指教怎么写提取正则和插入数据库替换....

解决方案 »

  1.   


                string url = "";//网址如:http://www.baidu.cn            string str = ".....";//            间里保持食品的香脆新鲜。6枚入,三种造型搭配。</p> <p><img alt="" src="/NewWebPic/FckPic/201005190523363891.jpg" /></p>
                string pstr = @"<p>说明:.*?</p>\s*<p><img .*?</p>";
                string pimg = @"<img.*?src=""(.*?)"".*?/>";
                MatchCollection mc = Regex.Matches(str, pstr, RegexOptions.IgnoreCase);
                for (int i = 0; i < mc.Count; i++)
                {
                    string content = mc[i].Value;
                    Match mimg = Regex.Match(content, pimg, RegexOptions.IgnoreCase);
                    if (mimg.Success)
                    {
                        string imgpath = mimg.Result("$1");
                        if (imgpath[0] == '/')
                        {
                            imgpath = url + imgpath;
                        }
                        //下载
                        string savename = "/NewWebPic/FckPic/" + imgpath.Substring(imgpath.LastIndexOf("/")+1);
                        SavePhotoFromUrl(Server.MapPath(savename), imgpath);
                        content = content.Replace(mimg.Value, "<img src=\"" + savename + "\" />");
                        //插入数据库
                    }
                }        }        /// <summary>
            /// 从图片地址下载图片到本地磁盘
            /// </summary>
            /// <param name="ToLocalPath">图片本地磁盘地址</param>
            /// <param name="Url">图片网址</param>
            /// <returns></returns>
            public bool SavePhotoFromUrl(string FileName, string Url)
            {
                bool Value = false;
                WebResponse response = null;
                Stream stream = null;
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);                response = request.GetResponse();
                    stream = response.GetResponseStream();                if (!response.ContentType.ToLower().StartsWith("text/"))
                    {
                        Value = SaveBinaryFile(response, FileName);
                    }            }
                catch (Exception err)
                {
                    string aa = err.ToString();
                }
                return Value;
            }
            /// <summary>
            /// Save a binary file to disk.
            /// </summary>
            /// <param name="response">The response used to save the file</param>
            // 将二进制文件保存到磁盘
            private bool SaveBinaryFile(WebResponse response, string FileName)
            {
                bool Value = true;
                byte[] buffer = new byte[1024];            try
                {
                    if (File.Exists(FileName))
                        File.Delete(FileName);
                    Stream outStream = System.IO.File.Create(FileName);
                    Stream inStream = response.GetResponseStream();                int l;
                    do
                    {
                        l = inStream.Read(buffer, 0, buffer.Length);
                        if (l > 0)
                            outStream.Write(buffer, 0, l);
                    }
                    while (l > 0);                outStream.Close();
                    inStream.Close();
                }
                catch
                {
                    Value = false;
                }
                return Value;
            }
      

  2.   

    不好意思 没表达清楚string pstr = @"<p>说明:.*?</p>\s*<p><img .*?</p>";不是每个详细信息都有  <p>说明  标签现在就是想从详细中提取<img>标签信息     指教了
      

  3.   

    string pstr = "<img .*?>";
      

  4.   

    &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;此款杯体为优质磨砂玻璃制造,杯体印有足以使人喷饭的经典语录。如此实用且&lt;/font&gt;&lt;font size="2"&gt;个性的杯子摆在桌前,也许让您成为同事、朋友的焦点。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020556508932.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020557348620.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020557231120.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;数据库里面读出来没有解码  正则获取<img alt="" src="">信息
       o(︶︿︶)o 唉  郁闷了
    正则
      

  5.   

    MatchCollection mc = Regex.Matches(html,@"(?<=<img[^>]*?)src=(['""]?)[^'"" ]+\1");
    foreach(Match m in mc)
    {
    //...
    }
      

  6.   

    string Detail="&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;此款杯体为优质磨砂玻璃制造,杯体印有足以使人喷饭的经典语录。如此实用且&lt;/font&gt;&lt;font size="2"&gt;个性的杯子摆在桌前,也许让您成为同事、朋友的焦点。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020556508932.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020557348620.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020557231120.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;";string pimg =@"(?<=<img[^>]*?)src=(['""]?)[^'"" ]+\1";
                        MatchCollection mc = Regex.Matches(Detail, pimg, RegexOptions.IgnoreCase);
                        for (int i = 0; i < mc.Count; i++)// 断点 count=0
                        {                        string content = mc[i].Value
                            string mimg = content.Substring(content.LastIndexOf("/"), content.Length - content.LastIndexOf("/"));
                            content = content.Replace(content, "/upload/FckPic" + mimg);
                            downRemoteImg("/upload/FckPic", content.Substring(content.LastIndexOf("/") + 1));
                           }
      

  7.   

    你这里的<都用html的&gt这些符号了。说明<img ... src这些是网页显示的内容了。不是html中匹配。自然不能用我给你的这个来做了。
      

  8.   

    private static void TestRegex07()
    {
        string html = @"<p><img alt="""" src=""http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201005190523363891.jpg"" /></p>·/NewWebPic/BigPic/201005190520298422.jpg·/NewWebPic/SmalPic/201005190520338735.jpg·/NewWebPic/BigPic/201005190520298422.jpg··0.052·7*2.5*0.8CM·PP·10·136·OL-557·362··HQS-Y32992·0·1900-1-1 0:00:00·2010-5-19 17:24:27·0··0··0·100·300·242·封口夹·0·0··20100527·0·0·>";
        MatchCollection mc = Regex.Matches(html, @"(?<=<img[^>]*?)src=(['""]?)[^'"" ]+\1");
        foreach (Match m in mc)
        {
            Console.WriteLine(m.Value);
        }
    }
      

  9.   

    string Detail="&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;此款杯体为优质磨砂玻璃制造,杯体印有足以使人喷饭的经典语录。如此实用且&lt;/font&gt;&lt;font size="2"&gt;个性的杯子摆在桌前,也许让您成为同事、朋友的焦点。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020556508932.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020557348620.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;font size="2"&gt;&lt;img alt="" src="http://www.ywybsc.com.cn/product/NewWebPic/FckPic/201006020557231120.jpg" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;";string pimg =@"(?is)(?<=&lt.*?img.*?)src=(['""]?)[^'"" ]+\1";
      MatchCollection mc = Regex.Matches(Detail, pimg, RegexOptions.IgnoreCase);
      for (int i = 0; i < mc.Count; i++)
      {
      }