|zyciis| 求一正则的新功能 <(a).[^>]*(href)=(\"|'|)(.[^\"|'||\\s]*)(\"|'|)[^>]*>

zyciis742 2008-04-10 09:33:45
我这个是用来提取 <a>标签中的href的
现在这个可以了
但现在我要对这个正则有两点新的要求
如位帮帮忙帮我改一下

谢谢

<(a).[^>]*(href)=(\"|'|)(.[^\"|'||\\s]*)(\"|'|)[^>]*>
1:href里面不能以“http://”开台
2:href里面必须包括“.aspx”

再次感谢
...全文
228 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
HimeTale 2008-04-11
  • 打赏
  • 举报
回复
8好意思,刚才没看清需求,这样:
(?<=<(a)[^>]*href\s*=\s*(\"|')\s*)[^http://]*\.aspx(?=\s*\2)
HimeTale 2008-04-11
  • 打赏
  • 举报
回复
(?<=<(a)[^>]*)href\s*=\s*(\"|')\s*[^http://].*\.aspx\s*\2
貌似满足要求。
缺点是不能检验文法,比如标签没关门也能匹配。
harryheart 2008-04-11
  • 打赏
  • 举报
回复

(?<=<a[^>]*href=")(?!=http://).*?\.aspx.*?(?=")
vfan2010 2008-04-11
  • 打赏
  • 举报
回复

<a.+href\s*=\s*["']([^http:|www\.].+\.aspx[?'"]+.*)['"]*>.+</a>
vfan2010 2008-04-11
  • 打赏
  • 举报
回复
你这个连
<a href ="index.aspx">1 </a>
都不能通过啊
zyciis742 2008-04-11
  • 打赏
  • 举报
回复
就我上面的

<(a).[^>]*(href)=(\" ¦' ¦)(.[^\" ¦' ¦ ¦\s]*)(\" ¦' ¦)[^>]*>

这个已经可以实现,但是就是没有没有判断上面的那两个功能 怎么加上
zyciis742 2008-04-11
  • 打赏
  • 举报
回复
<a id=1 href="/index.aspx?id=1">dd</a>
通不过
zyciis742 2008-04-11
  • 打赏
  • 举报
回复
<a href="www.csdn.net/index.aspx?id=1">dd</a>
<a href="/net/index.aspx?id=1">dd</a>
通不过
vfan2010 2008-04-11
  • 打赏
  • 举报
回复
晕。我复制进来也不行了。难道是回贴后一些字符被替换了。
我改了一下。再看看。
<a\s+href\s*=\s*["']([^http]\w+\.aspx[?'"]+.*)['"]*>.+</a>
zyciis742 2008-04-11
  • 打赏
  • 举报
回复
楼上的我在 Code Architects Regex Tester 中测试不过
vfan2010 2008-04-11
  • 打赏
  • 举报
回复
<a\s+href\s*=\s*["']([^http]\w+\.aspx.+)['"]>.+</a>
zyciis742 2008-04-11
  • 打赏
  • 举报
回复
RE:楼上的:href\s*=([^http://]*)\.aspx
---------------------------------
取出来的是
href ="index.aspx
而我要的是 index.aspx

还有当我的是
<a href ="index.aspx?ID=1">1</a>
这样的话后面的?ID=1也取不出来
live_7sky 2008-04-11
  • 打赏
  • 举报
回复
<a href ="http://localhost/index.aspx">1 </a>
<a href ="index.htm">1 </a>
<a href ="index.aspx">1 </a>
===========================================
正解
href\s*=([^http://]*)\.aspx

\s* 你的 href 与 = 之间有 0个或多个空格

(.*)\.aspx .要用 \ 转义,除了 .aspx 结尾的都可以

([^http://]*) 代表 除了 以 http:// 开头的都不行。

=============
楼上的
<a href="((?!http).+?aspx)" 换成 href\s*="((?!http).+?aspx)" 也可以
photoplan 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zyciis742 的回复:]
<a href ="http://localhost/index.aspx">1 </a>
<a href ="index.htm">1 </a>
<a href ="index.aspx">1 </a>
如第里只有第三条有正确

1:因为他是以http://开台
2:他里面没有包含.aspx
3:通过

谢谢
[/Quote]

<a href="((?!http).+?aspx)"

这里试 http://regex.getfishes.com/default.aspx
wanabe 2008-04-10
  • 打赏
  • 举报
回复
up
wxy0401 2008-04-10
  • 打赏
  • 举报
回复
请试试这个

@"<a href =""[^http://].*\.aspx"">"
zyciis742 2008-04-10
  • 打赏
  • 举报
回复
<a href ="http://localhost/index.aspx">1</a>
<a href ="index.htm">1</a>
<a href ="index.aspx">1</a>
如第里只有第三条有正确

1:因为他是以http://开台
2:他里面没有包含.aspx
3:通过

谢谢
oec2003 2008-04-10
  • 打赏
  • 举报
回复
绑定了
wxy0401 2008-04-10
  • 打赏
  • 举报
回复
请举两个实际应用的例子

62,046

社区成员

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

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

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

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