查书也搞不定的正则题

hetengfei_ 2012-01-13 04:24:54
几套正则表达式的题目
正则表达式:
取得下面 链接a的属性id
<a href = "abc.htm" id="IdString" >哈哈</a>
<a href = "abcac.htm" id="aLna" />
<div id="dog" ><a id="aDog" href="#">aaa</a></div>

回答: <a\s+(?:\w+\s=\s["'][\w#.]+["']\s*)*id\s*=\s*["'](?<id>\w+['"])(?:\w+\s=\s["'][\w#.]+["']\s*)*
取得下面 所有链接a的属性innerHtml
这个我不会啊。下面那个是错的,
<a\b+[\w\W]*>(?<innerHtml>[\w\W]*[^<][^a][\S][\w\W]*)<\b*/a\b*>
...全文
120 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
devmiao 2012-01-14
  • 打赏
  • 举报
回复
这个叫做懒惰和贪婪模式哦,你再看看书,喵~
hetengfei_ 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 6楼 wangzheyongle 的回复:]
取id属性为什么要用正则>? //比如,我要取得 整个页面所有的 a 标签所有id 都列出来,or ,所有Img 的URL等等。
[/Quote]
q2104574 2012-01-14
  • 打赏
  • 举报
回复
(?<=[\<][a].*[i][d][=]["]).*(?=["]\s*[\>].*[\n])

。。- -新手学习。这个只符合第一行的,,脑袋转不动了,求高人~以前只会一行的。。现在要换行,蛋疼啊
hetengfei_ 2012-01-14
  • 打赏
  • 举报
回复
因为找innerHtml 时
[Quote=:]
<a href="abc.htm" id="IdString">哈哈</a>
<a href="abcac.htm" id="aLna" />
<div id="dog">
<a id="aDog" href="#">aaa
</a>
</div>
[/Quote]
因为找他的innerHMTL 时跨过了线。
本来就要哈哈的。结果不是,跨到了最后一个</a>了.
hetengfei_ 2012-01-14
  • 打赏
  • 举报
回复
结果都没有:
·1 aababa,
·2 aababa,
·3 aababa
这三种 结果都找出来的正则,
主要是能找出第二种结果.
王者永乐 2012-01-14
  • 打赏
  • 举报
回复
取id属性为什么要用正则>?
hetengfei_ 2012-01-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 devmiao 的回复:]
这个叫做懒惰和贪婪模式哦,你再看看书,喵~
[/Quote]
我也是看了 书不懂才问的。
文本:aababa
·贪婪的正则:a*b
结果aababa

·贪婪的正则:a*?b
结果aababa ,aababa
诺维斯基 2012-01-14
  • 打赏
  • 举报
回复
不懂楼主在说什么!
huangwenquan123 2012-01-14
  • 打赏
  • 举报
回复
            string str = @"<a href = ""abc.htm"" id=""IdString"" >哈哈</a>
<a href = ""abcac.htm"" id=""aLna"" />
<div id=""dog"" ><a id=""aDog"" href=""#"">aaa</a></div>";
Regex reg = new Regex(@"<a[^>]*?>([^<>]+)");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[1].Value);
huangwenquan123 2012-01-14
  • 打赏
  • 举报
回复
不太清楚lz的意思

string str = @"<a href = ""abc.htm"" id=""IdString"" >哈哈</a>
<a href = ""abcac.htm"" id=""aLna"" />
<div id=""dog"" ><a id=""aDog"" href=""#"">aaa</a></div>";
Regex reg = new Regex(@"<a[^>]*?>((?:(?!</?a).)*)");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[1].Value);
/*
哈哈

aaa
*/
hetengfei_ 2012-01-13
  • 打赏
  • 举报
回复
就是我个问题,叫做优先级吧!
文本:aabab
正则:a*?b
结果是: aab,ab 即是 aabab,aabab

但我要的结果是:
aab,
ab,
ab.
即是: aabab,aabab,aabab
难道正则 对此无能为力吗?

62,266

社区成员

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

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

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

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