正则表达式 难题

bitzhou 2007-12-01 12:31:42
我用正则表达式:<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>这些标记
...全文
78 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
symbol441 2007-12-01
  • 打赏
  • 举报
回复
<IMG src="xin_2721104302313500258303.jpg" border=0>

(?<=<IMG[^src]+?src=")[^"]+?(?="[^>]+?>)

wangkun9999 2007-12-01
  • 打赏
  • 举报
回复
已经写了很多这样的正则了,不怎么难啊:

string str="..";
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;


}



bitzhou 2007-12-01
  • 打赏
  • 举报
回复
请问我如何过滤掉前面: <IMG src=" 和后面" border=0> 这些标记
liuyun1987 2007-12-01
  • 打赏
  • 举报
回复
string result =@"<IMG src="xin_2721104302313500258303.jpg" border=0> <IMG src="xin_4021104302313078191805.jpg" border=0> ...";
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
}
root_ 2007-12-01
  • 打赏
  • 举报
回复
MatchCollection mc = Regex.Matches(str, @"<img.*?src=""(?<url>[^""]*)""[^>]*>", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["url"].Value);
}

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧