正则表达式,返回值为空

public static string geturl(string al) {
string pattern = @"(?<=;<img src=")((?!").)*";
MatchCollection mc = Regex.Matches(al, pattern);
string we="";
foreach (Match m in mc)
{

            we= m.Value.ToString();
        }
        return we;
                    //获取不到we的值,foreach里面,没有对其赋值,还是其他的地方错了,,希望大神指导一下

双引号要转义

 string pattern = @"(?<=;<img src="")[^""]*?(?="")";

BTW:
foreach内要用字符拼接而不是直接付值吧:

we += m.Value.ToString();

update:

  string pattern = @"(?<=;<img src=(['""]))[^'""]*?(?=\1)";

那是因为你给出的正则中有分号,只要去除其中的分号即可:

(?<=<img src=(['""]))[^'""]*?(?=\1)

     public static string geturl(string al)
    {
        string pattern = "<img.*?src=\"([^\"]+)";
        MatchCollection mc = Regex.Matches(al, pattern);
        string we = "";
        foreach (Match m in mc)
        {

            we += "," + m.Groups[1].Value;
        }
        return we.TrimStart(',');
    }

        Response.Write(geturl("<img alt=\"\" src=\"/asd/up/image/20741_6483.jpg\" /><img alt=\"\" src=\"/asd/up/image/2xx0741_6483.jpg\" />"));