string s_content="<p>第一张图<img height="225" alt="aa" width="300" src="/upload/UserFiles/Blue hills.jpg" />第二张图测试<img height="225" width="300" alt="bb" src="/upload/UserFiles/Winter.jpg" />得到图测试</p>
";public void pict(string input) 
        {            MatchCollection mc = Regex.Matches(input, @"(?<alt>(?<=<img[^>]*?alt="")[^""]+(?="")*(?<src>(?<=<img[^>]*?src="")[^""]+(?="")*)", RegexOptions.Multiline);            foreach (Match m in mc)
            {               Response.Write("alt: \n" + m.Groups["alt"].Value + "\n");               Response.Write("src: \n" + m.Groups["src"].Value + "\n");            }
        }调用出现错误
正在分析“(?<alt>(?<=<img[^>]*?alt=")[^"]+(?=")*(?<src>(?<=<img[^>]*?src=")[^"]+(?=")*)”- ) 不足。

解决方案 »

  1.   

    (?<alt>(?<=<img[^>]*?alt=")[^"]+(?=")*(?<src>(?<=<img[^>]*?src=")[^"]+(?=")*))你这是要匹配什么,这正则写的有点啰嗦
      

  2.   

    这样写,其他代码不变:(?i)<img\b[^>]*?alt=(['"]?)(?<alt>[^'"]+)\1[^>]*?src=(['"]?)(?<src>[^'"]+)\2[^>]*>
      

  3.   

    这样写,其他代码不变:(?i)<img\b[^>]*?alt=(['"]?)(?<alt>[^'"]+)\1[^>]*?src=(['"]?)(?<src>[^'"]+)\2[^>]*>
      

  4.   

    串alt="aa"  src="/upload/UserFiles/Blue hills.jpg" 匹配<img 后的 alt 和 srcaa  /upload/UserFiles/Blue hills.jpg 
      

  5.   

    楼主第二个(?<=<img[^>]*?是多于的。
      

  6.   

    MatchCollection mc = Regex.Matches(input, @"(?<alt>((?<=<img[^>]*?alt="")[^""]+(?="")*(?<src>(?src="")[^""]+(?="")*)", RegexOptions.Multiline);正在分析“(?<alt>((?<=<img[^>]*?alt=")[^"]+(?=")*(?<src>(?src=")[^"]+(?=")*)”- 无法识别的分组构造。 
      

  7.   

    MatchCollection mc = Regex.Matches(input, @"(?is)<img\b[^>]*?alt=(['"]?)(?<alt>[^'"]+)\1[^>]*?src=(['"]?)(?<src>[^'"]+)\2[^>]*>");有多个表达式错误
      

  8.   

    " 要转义啊MatchCollection mc = Regex.Matches(input, @"(?i)<img\b[^>]*?alt=(['""]?)(?<alt>[^'""]+)\1[^>]*?src=(['""]?)(?<src>[^'""]+)\2[^>]*>");