一遍文章的内容里,有多处如下的内容: 
<IMG src="UploadFile/Mail/20083121g72134e194001.jpg" border=0> 
<IMG src="UploadFile/Mail/200812g1721341903301.png" border=0> 
<IMG src="UploadFile/Mail/2008121g7213t419001.gif" border=0> 
<IMG src="http://www.abc.com/121g7213t419001.jpg" border=0> 
<IMG src="http://www.csdn.com/121g7213t419001.jpg" border=0> 
如何写一个函数,用正则找到所有以 UploadFile/Mail/ 开始的图片名称,象这样:
20083121g72134e194001.jpg,
200812g1721341903301.png
然后分别把图片名称存到ArrayList里,并返回这个ArrayList?

解决方案 »

  1.   

    //不知道你这个src是不是都能够保证以"结尾,这个正则是匹配 UploadFile/Mail/和"之间的内容的。
    System.Text.RegularExpressions.Regex ss=new Regex(@"(?<=UploadFile/Mail/).*?(?=\s*?"")");
    ArrayList sdf=new ArrayList();
    for(int i=0;i<ss.Matches(s).Count;i++)
    {
                               sdf.Add(ss.Matches(s)[i].Value);
    }
      

  2.   

    string regexImgPattern = @"UploadFile/Mail/.*\.(gif|jpg|png)";
                myRegex = new Regex(regexImgPattern,RegexOptions.IgnoreCase);
                myMatch = myRegex.Match(httpsource);
                while (myMatch.Success == true)
                {
                    listBoximg.Items.Add(myMatch.Groups[2].Value);
                    myMatch = myMatch.NextMatch();
                }
      

  3.   

    string pattern=@"(?i)<IMG src=(['""])UploadFile/Mail/(?<img>[^'""]+)\1[^>]*>";
    Regex reg=new Regex(pattern);
    ArrayList list=new ArrayList();
    foreach(Match m in reg.Matches("你的字符串"))
    {
     list.Add(m.Groups["img"].Value);
    }
      

  4.   

    foreach (Match match in Regex.Matches("HTML源码", "(?<=<IMG\\s+src=\"UploadFile/Mail/)[^\"]+"))
    {
    Console.WriteLine(match.Value);
    }
      

  5.   

    我回复的正则里面不带空格,怎么提交就带空格了呢foreach (Match match in Regex.Matches("HTML源码", "(?<=<IMG\\s+src=\"UploadFile/Mail/)[^\"]+")) 

    Console.WriteLine(match.Value); 
    }