<P align=center>1<href width="60" height="90px" src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg'></P>
<P align=center>2<img src='/uploads/allimg/090403/012F31N9-1.jpg' border="0"></P>
<P align=center>3<img src='/uploads/allimg/090403/012F3D13-2.jpg'style="width:100px"> </P>
<P align=center>5<img src="  /uploads/allimg/090403/012F31N9-1.jpg  " border="0"></P>
<P align=center>6<img src=  "  /uploads/allimg/090403/012F31N9-1.jpg  " border="0"></P>
<P align=center>7<img src= /uploads/allimg/090403/012F3D13-2.jpg style="width:100px"> </P>
正确结果要求是  :
http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg
/uploads/allimg/090403/012F31N9-1.jpg 
/uploads/allimg/090403/012F31N9-1.jpg
/uploads/allimg/090403/012F31N9-1.jpg   
/uploads/allimg/090403/012F3D13-2.jpg 
我找的正则:
src.*?=.*?[\"|\']?\s*?\/(.+?\.(?:jpg|gif|png|bmp))(\"|\'|\s)*?\s*?结果是  
src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg
src='/uploads/allimg/090403/012F31N9-1.jpg
src='/uploads/allimg/090403/012F3D13-2.jpg
src="  /uploads/allimg/090403/012F31N9-1.jpg  
src=  "  /uploads/allimg/090403/012F31N9-1.jpg  
src= /uploads/allimg/090403/012F3D13-2.jpg
请问如何得到正确结果

解决方案 »

  1.   


    (?<=src.*?=.*?[\"|\']?)\s*?\/(.+?\.(?:jpg|gif|png|bmp))(\"|\'|\s)*?\s*?  修改了一下你的,试试看
      

  2.   

    (?is)<img.*?src=[\"'](?<url>[^\"'\\s]+)
      

  3.   

    你所给的“正确结果”有五项,而源字符串中有六项,区分不出哪一个不是你想要的,不想要的有什么规律?Regex reg = new Regex(@"(?is)(?<=src\s*=\s*(['""]?)\s*)[^'""\s>]+(?=\s*\1)");
    MatchCollection mc = reg.Matches(yourStr);
    foreach (Match m in mc)
    {
        richTextBox2.Text += m.Value + "\n";
    }
    /*----------输出----------
    http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F3D13-2.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F3D13-2.jpg
    */
      

  4.   

                string pageHtml = @"<P align=center>1 <href width=""60"" height=""90px"" src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg'> </P>
    <P align=center>2 <img src='/uploads/allimg/090403/012F31N9-1.jpg' border=""0""> </P>
    <P align=center>3 <img src='/uploads/allimg/090403/012F3D13-2.jpg'style=""width:100px""> </P>
    <P align=center>5 <img src=""  /uploads/allimg/090403/012F31N9-1.jpg  "" border=""0""> </P>
    <P align=center>6 <img src=  ""  /uploads/allimg/090403/012F31N9-1.jpg  "" border=""0""> </P>
    <P align=center>7 <img src= /uploads/allimg/090403/012F3D13-2.jpg style=""width:100px""> </P> ";            Regex reg = new Regex(@"(?is)src=\s*['""]?\s*(.*?\.jpg)['""]?");
               
                MatchCollection mc = reg.Matches(pageHtml);            foreach (Match m in mc)
                {
                    Console.WriteLine(m.Groups[1].ToString() + "\r\n");
                }
    /*
    http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg/uploads/allimg/090403/012F31N9-1.jpg/uploads/allimg/090403/012F3D13-2.jpg/uploads/allimg/090403/012F31N9-1.jpg/uploads/allimg/090403/012F31N9-1.jpg/uploads/allimg/090403/012F3D13-2.jpg*/
      

  5.   

    mbh0210]回2楼的  你的正则  第一正 网址  缺少 http://lxcnn】四楼  你带程序里面测试了 ?  我怎么运行不对啊 [ 结果: /js/pic_ctrl.js ]正确结果:
    /*----------输出----------
    http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F3D13-2.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F3D13-2.jpg
    */
    我少打了一个
    zhoukang0916】三楼
    运行结果:(也不对)
    <img src="/image
      

  6.   


    你在什么环境下使用,C#还是JavaScript?
    4楼的测试代码你是怎么使用的?            string test = @"<P align=center>1<href width=""60"" height=""90px"" src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg'></P> 
    <P align=center>2<img src='/uploads/allimg/090403/012F31N9-1.jpg' border=""0""></P> 
    <P align=center>3<img src='/uploads/allimg/090403/012F3D13-2.jpg'style=""width:100px""></P> 
    <P align=center>5<img src=""  /uploads/allimg/090403/012F31N9-1.jpg  "" border=""0""></P> 
    <P align=center>6<img src=  ""  /uploads/allimg/090403/012F31N9-1.jpg  "" border=""0""></P> 
    <P align=center>7<img src= /uploads/allimg/090403/012F3D13-2.jpg style=""width:100px""></P> ";
                Regex reg = new Regex(@"(?is)(?<=src\s*=\s*(['""]?)\s*)[^'""\s>]+(?=\s*\1)");
                MatchCollection mc = reg.Matches(test);
                foreach (Match m in mc)
                {
                    richTextBox2.Text += m.Value + "\n";
                }
    /*----------输出----------
    http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F3D13-2.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F31N9-1.jpg
    /uploads/allimg/090403/012F3D13-2.jpg
    */
      

  7.   

    用错 测试 例子了过客的真确  但是 没有限制  结尾  jpg|gif|png|bmp
      

  8.   


    那就加下限制吧            string test = @"<P align=center>1<href width=""60"" height=""90px"" src='http://www.chongwen.com/uploads/allimg/090403/012F35310-0.jpg'></P> 
    <P align=center>2<img src='/uploads/allimg/090403/012F31N9-1.jpg' border=""0""></P> 
    <P align=center>3<img src='/uploads/allimg/090403/012F3D13-2.jpg'style=""width:100px""></P> 
    <P align=center>5<img src=""  /uploads/allimg/090403/012F31N9-1.jpg  "" border=""0""></P> 
    <P align=center>6<img src=  ""  /uploads/allimg/090403/012F31N9-1.jpg  "" border=""0""></P> 
    <P align=center>6<img src=  ""  /uploads/allimg/090403/012F31N9-1.dib  "" border=""0""></P> 
    <P align=center>7<img src= /uploads/allimg/090403/012F3D13-2.jpg style=""width:100px""></P> ";
                Regex reg = new Regex(@"(?is)(?<=src\s*=\s*(['""]?)\s*)[^'""\s>]+(?:\.jpg|gif|png|bmp)(?=\s*\1)");
                MatchCollection mc = reg.Matches(test);
                foreach (Match m in mc)
                {
                    richTextBox2.Text += m.Value + "\n";
                }
      

  9.   


    (?i)表示忽略大小写
    (?s)表示单行模式,也就是小数点“.”可以匹配任意字符,这里没涉及到,可以去掉,拿以前的正则改的,忘了去掉了Regex reg = new Regex(@"(?i)(?<=src\s*=\s*(['""]?)\s*)[^'""\s>]+(?:\.jpg|gif|png|bmp)(?=\s*\1)");