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\" />"));