我用正则表达式:<IMG\ssrc=[\s\S]*?border=0>
获得以下内容:
<IMG src="xin_2721104302313500258303.jpg" border=0>
<IMG src="xin_4021104302313078191805.jpg" border=0>
<IMG src="xin_29210042823354375753189.gif" border=0>但是我希望只获取src的值:xin_2721104302313500258303.jpg,xin_4021104302313078191805.jpg,xin_29210042823354375753189.gif请问我如何过滤掉前面:<IMG src=" 和后面" border=0>这些标记
获得以下内容:
<IMG src="xin_2721104302313500258303.jpg" border=0>
<IMG src="xin_4021104302313078191805.jpg" border=0>
<IMG src="xin_29210042823354375753189.gif" border=0>但是我希望只获取src的值:xin_2721104302313500258303.jpg,xin_4021104302313078191805.jpg,xin_29210042823354375753189.gif请问我如何过滤掉前面:<IMG src=" 和后面" border=0>这些标记
string RegexString = @"<IMG.+?src=""(?<SRC>[^<].*?)"".+?>";
string[] SRC = GetRegValue(str, RegexString, "SRC", true); /// <summary>
/// 正则表达式取值
/// </summary>
/// <param name="HtmlCode">源码</param>
/// <param name="RegexString">正则表达式</param>
/// <param name="GroupKey">正则表达式分组关键字</param>
/// <param name="RightToLeft">是否从右到左</param>
/// <returns></returns>
public string[] GetRegValue(string HtmlCode , string RegexString,string GroupKey,bool RightToLeft)
{
MatchCollection m;
Regex r;
if (RightToLeft == true)
{
r = new Regex(RegexString, RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.RightToLeft);
}
else
{
r = new Regex(RegexString, RegexOptions.IgnoreCase | RegexOptions.Singleline);
}
m= r.Matches(HtmlCode);
string[] MatchValue = new string[m.Count];
for (int i = 0; i < m.Count; i++)
{
MatchValue[i] = m[i].Groups[GroupKey].Value;
}
return MatchValue;
}
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["url"].Value);
}
Match m = Regex.Match(result, @"<IMG src=""(?<img>[\w\W]+?)"" border=0> ", RegexOptions.IgnoreCase);
if (m.Success)
{
string img=m.Groups["img"].value.ToString(); //这里捕捉到的就是xin_2721104302313500258303.jpg
//do something
}