求正则~

tkscascor 2010-12-03 04:48:12

<img src="dfsdfasdfas">
<img src='dfsdfasdfas'>
要求获取 src='开始到第一个' 结束 ,

如果 第一个是单引号, 后面匹配的结束符号 也必须是第一个 单引号.
如果是双引号 , 后面匹配的结束符号 也必须是第一个双引号,
赶时间 :)
...全文
273 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
tkscascor 2010-12-04
  • 打赏
  • 举报
回复
THX , j 解决!
tkscascor 2010-12-04
  • 打赏
  • 举报
回复
强人. ... 测试。测试后揭帖。。。。
都是强人。我看还是加点分, 这点分对不住各位呀。。。。
-过客- 2010-12-03
  • 打赏
  • 举报
回复
try...

string test = @"<IMG height=16 src=""/WebHHEmailSYS1/images/001001171164/up.gif"" width=16 border=0><A HREF=""/WebHHEmailSYS1/Email/001001171164/20101203053111028.rar"">20101203053111028.rar </A>
<img src=""dfsdfasdfas"">
<img src='dfsdfasdfas'>
<A HREF=""/WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar"">20101203050738canvas.rar </A> <IMG height=112 src=""/WebHHEmailSYS1/images/001001171164/image.jpg"" width=881 border=0>";
Regex reg = new Regex(@"(?i)<(?:(?<a>)a|img)[^>]*?(?:href|src)=(['""]?)(?(a)(?<url>[^'""\s>]+)|(?<img>[^'""\s>]+))\1[^>]*>");
MatchCollection mc = reg.Matches(test);
List<string> hrefList = new List<string>();
List<string> srcList = new List<string>();
foreach (Match m in mc)
{
if (m.Groups["url"].Value != "")
{
hrefList.Add(m.Groups["url"].Value);
}
else
{
srcList.Add(m.Groups["img"].Value);
}
}
//输出验证
richTextBox2.Text += "============href===========\n";
foreach (string s in hrefList)
{
richTextBox2.Text += s + "\n";
}
richTextBox2.Text += "============src===========\n";
foreach (string s in srcList)
{
richTextBox2.Text += s + "\n";
}
/*---------输出---------
============href===========
/WebHHEmailSYS1/Email/001001171164/20101203053111028.rar
/WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar
============src===========
/WebHHEmailSYS1/images/001001171164/up.gif
dfsdfasdfas
dfsdfasdfas
/WebHHEmailSYS1/images/001001171164/image.jpg
*/
huangwenquan123 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 tkascor 的回复:]
你那个有先后顺序影响, 我吧 a 放前面 就可以,
还有, 我的 html 里面是很多过 a , img的, 获取出来 什么格式?
m.Groups["path"] 这个没有编号的样子 ? 比如, 所有 a的 一组, img的一组
[/Quote]

1:我的 html 里面是很多过 a , img的, 获取出来 什么格式?
//取出来的就是a的链接 img的src,是个字符串
2:m.Groups["path"] 这个没有编号的样子 ? 比如, 所有 a的 一组, img的一组
//这个m.groups["path"]是正则分组的,你可以看下过客兄的博客有介绍
sb.Append(m.Groups["url"].Value + "<br/>");//这个是取a的所有链接href
sb.Append(m1.Groups["path"].Value + "<br/>");//这个是取img的所有src
huangwenquan123 2010-12-03
  • 打赏
  • 举报
回复

//我以为是固定连着的所以写在一起!现在分开了取了!
StringBuilder sb = new StringBuilder();
string str = "<IMG height=16 src=\"/WebHHEmailSYS1/images/001001171164/up.gif\" width=16 border=0><A HREF=\"/WebHHEmailSYS1/Email/001001171164/20101203053111028.rar\">20101203053111028.rar </A>";
Regex reg = new Regex(@"(?i)<a[^>]*?href=(['""]?)(?<url>[^'""\s]+)\1[^>]*?>");
MatchCollection match = reg.Matches(str);
foreach (Match m in match)
{
sb.Append(m.Groups["url"].Value + "<br/>");
}
Regex reg1 = new Regex(@"(?i)<img[^>]*?src=(['""]?)(?<path>[^'""\s]+)\1[^>]*?>");
MatchCollection match1 = reg1.Matches(str);
foreach (Match m1 in match1)
{
sb.Append(m1.Groups["path"].Value + "<br/>");
}
Response.Write(sb.ToString());
兔子-顾问 2010-12-03
  • 打赏
  • 举报
回复
MatchCollection mc = Regex.Matches(yourHtml,@"(?<=(?is)<img.*?src=(['"]?))(?<url>[\w/:.]+)(?=\1)");
foreach(Match m in mc)
{
m.Value;//<--
}
tkscascor 2010-12-03
  • 打赏
  • 举报
回复
下班了. 踢球先, 晚上回来继续,,,, thx
keystudio 2010-12-03
  • 打赏
  • 举报
回复

@"(?<=<(img|a))[^<>]+?(href|src)=(['""])(?<g>[^'""]+)\3"

//Groups["g"];
tkscascor 2010-12-03
  • 打赏
  • 举报
回复
你那个有先后顺序影响, 我吧 a 放前面 就可以,
还有, 我的 html 里面是很多过 a , img的, 获取出来 什么格式?
m.Groups["path"] 这个没有编号的样子 ? 比如, 所有 a的 一组, img的一组
tkscascor 2010-12-03
  • 打赏
  • 举报
回复
TO:15 你用这个看看

<IMG height=16 src=\"/WebHHEmailSYS1/images/001001171164/up.gif\" width=16 border=0><A HREF=\"/WebHHEmailSYS1/Email/001001171164/20101203053111028.rar\">20101203053111028.rar </A>
huangwenquan123 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 tkascor 的回复:]
- - 为嘛都用不了.
[/Quote]用不了?我是用你提供的那个字符串 我本地测试都可以啊!
pxynet 2010-12-03
  • 打赏
  • 举报
回复
/^<img src=('|")(\w+)?\1>$/
tkscascor 2010-12-03
  • 打赏
  • 举报
回复
- - 为嘛都用不了.
huangwenquan123 2010-12-03
  • 打赏
  • 举报
回复

//结果
/*
WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar
/WebHHEmailSYS1/images/001001171164/image.jpg
*/
huangwenquan123 2010-12-03
  • 打赏
  • 举报
回复

StringBuilder sb = new StringBuilder();
string str = "<A HREF=\"/WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar\">20101203050738canvas.rar </A> <IMG height=112 src=\"/WebHHEmailSYS1/images/001001171164/image.jpg\" width=881 border=0>";
Regex reg = new Regex(@"(?i)<a[^>]*?href=(['""]?)(?<url>[^'""\s]+)\1[^>]*?>[^>]*?</a>[^<>]*?<img[^>]*?src=['""]?(?<path>[^'""\s]+)\1[^>]*?>");
MatchCollection match = reg.Matches(str);
foreach (Match m in match)
{
sb.Append(m.Groups["url"].Value + "<br/>");
sb.Append(m.Groups["path"].Value);
}
Response.Write(sb.ToString());
byxxw 2010-12-03
  • 打赏
  • 举报
回复
(?i)(href|src)=(\\")(.*?)\2
q107770540 2010-12-03
  • 打赏
  • 举报
回复
(?is)<a.*?href="(?<href>.*?)".*?>.*?</a>.*?<img.*?src="(?<src>.*?)".*?>

取Group["href"]和Group["src"]内的值就是你想要的
边城的刀声 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tkascor 的回复:]

<A HREF=\"/WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar\">20101203050738canvas.rar&nbsp;</A>&nbsp;<IMG height=112 src=\"/WebHHEmailSYS1/images/001001171164/image.jpg\" width=881……
[/Quote]
(?:HREF|src)=\\"([^\\]+)
tkscascor 2010-12-03
  • 打赏
  • 举报
回复
<A HREF=\"/WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar\">20101203050738canvas.rar </A> <IMG height=112 src=\"/WebHHEmailSYS1/images/001001171164/image.jpg\" width=881 border=0>
这是原 字符串,
我要获取 /WebHHEmailSYS1/Email/001001171164/20101203050738canvas.rar 跟
/WebHHEmailSYS1/images/001001171164/image.jpg
q107770540 2010-12-03
  • 打赏
  • 举报
回复
" 要转义
Regex reg=new Regex(@"(?is)(?<=<img\ssrc=['""]).*?[^'""](?=['""])");
加载更多回复(5)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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