正则问题,匹配一次或0次

踏平扶桑 2015-07-22 04:49:51
(?is)<a[^>]*?href=['"]?(?<url>[^'"\s>]+)[^>]*title=['"](?<text>[^'"\s>]*)[^>]*>(?<text1>(?:(?!</?a\b).)*)</a>
上面这句匹配出来a链接的信息,包含url title和链接文字等,我现在想改成title这里匹配0次或1次,我尝试改成
(?is)<a[^>]*?href=['"]?(?<url>[^'"\s>]+)[^>]*(title=['"](?<text>[^'"\s>]*))?[^>]*>(?<text1>(?:(?!</?a\b).)*)</a>
却只能捕获到不包含title的链接的内容(有title的链接,<text>这里是空的)

请帮忙调整一下。谢谢!
...全文
560 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
其实只是在中间加了个((?!title).)* 来过滤除title外的其他属性
  • 打赏
  • 举报
回复
(?is)<a[^>]*?href=['"]?(?<url>[^'"\s>]+)[^>]*((?!title).)*(title=['"](?<text>[^'">]*))?[^>]*>(?<text1>(?:(?!</?a\b).)*)</a> 测试可用 不过,换我会首选xml方式来解析,会方便很多,逻辑也更清晰
f13e1f3ef13e1fe 2015-09-22
  • 打赏
  • 举报
回复
用| 匹配<a……>里多个规则的内容
踏平扶桑 2015-09-21
  • 打赏
  • 举报
回复
顶一下。。。。
踏平扶桑 2015-07-23
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
[^>]*? 注意非贪婪模式,贪婪模式的话,title那里因为可空,所以直接被[^>]*匹配过去了
先谢谢您,要提取的数据中的形式就两种 1、

<a href="/aaa/bb1/" target="_blank">
                    <img src="http://img1.abc.com/ccc/logo/pls.jpg" width="80" height="60" alt="奥迪" title="奥迪">
                    <span>奥迪</span>
                </a>
<a href="/abc/d5/" target="_blank">一汽-大众奥迪</a>
2、

<a href="/asdf/" target="_blank" title="奥迪A3两厢" >
                               <img src="http://img1.abc.com/ccc/1234.jpg"  width="120" height="85" alt="奥迪A3两厢">
                              <span title="奥迪A3两厢">奥迪A3两厢</span>
                           </a>
现在我想用一个正则匹配出来这些数据,既能提取出来“一汽-大众奥迪”,又能提取出来“奥迪A3两厢”,它们的链接地址、<a>和</a>中间的东西。
  • 打赏
  • 举报
回复
[^>]*? 注意非贪婪模式,贪婪模式的话,title那里因为可空,所以直接被[^>]*匹配过去了

62,046

社区成员

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

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

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

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