string page = "<input type=\"image\" height=\"325\" width=\"500\" src=\"FCKeditor/editor/filemanager/connectors/aspx/userfiles/image/B011627669461283B6A55B8611153813.jpg\" />";
            string pattern = "<input type=\"image\" \\s+src=\"(?<src>[^\"]+?)\"[\\s\\S]*?>";            Regex _r = new Regex(pattern, RegexOptions.Compiled);
            MatchCollection _m = _r.Matches(page);
            string[] result = new string[_m.Count];
            for (int i = 0; i < _m.Count; i++)
            {
                result[i] = _m[i].Groups["src"].Value;
                
                Console.WriteLine(result[i]);
            }            Console.ReadLine();我想要的就是src中的内容即图片的相对路径,
返回空!为什么?
以下正则都试了1.
<input.*?src=""(?<input>[^""]*)""[^>]*>",
2.
(?<=\<input\s*src=").+(?="[^>]*?>)
3.
<input.+?src=""(.+?)"".+?>
4.(?si)(<img\s+[^>]*)>还是不行!!
请高手们帮忙一下!!将不胜感激!!!

解决方案 »

  1.   

    应该是Regex _r = new Regex(pattern, RegexOptions.IgnoreCase);上面的写错了
      

  2.   

    应该是Regex _r = new Regex(pattern, RegexOptions.IgnoreCase);上面的写错了
      

  3.   


    string str = "<input type=\"image\" height=\"325\" width=\"500\" src=\"FCKeditor/editor/filemanager/connectors/aspx/userfiles/image/B011627669461283B6A55B8611153813.jpg\" />";
    System.Text.RegularExpressions.Regex  reg=new  System.Text.RegularExpressions.Regex(@"<input[^>].*?src=""(?<src>[^""].*)""[^>].*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);  
    System.Text.RegularExpressions.MatchCollection m = reg.Matches(str); //设定要查找的字符串
    for (int i = 0; i < m.Count; i++)
    {
    Response.Write(m[i].Groups["src"].ToString()+"<br>");
    }
      

  4.   

    加上条件type="image"
    System.Text.RegularExpressions.Regex  reg=new  System.Text.RegularExpressions.Regex(@"<input\s+type=""image""\s+[^>].*?src=""(?<src>[^""].*)""[^>].*?>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);