正则表达式查找网页中的所有链接

时间:2009-01-19 09:33:01

标签: c# html regex

我试图在网站上找到源代码中的所有链接,有人能告诉我需要在我的正则表达式中找到这些表达式吗?


(以及其他)的重复:Regular expression for parsing links from a webpage?

Google发现更多:html links regex site:stackoverflow.com

1 个答案:

答案 0 :(得分:-3)

我不确定这些会如何转化为C#(我还没有在C#中进行过任何开发),但是我可以在JavaScript或ColdFusion中使用它。它可能会让您了解如何在C#中执行此操作。

在JavaScript中我认为这会起作用:

rex = /.*href="([^"]+)"/; 
a = source.replace(rex,'\n$1').split('\n'); 

之后a将是一个包含链接的数组......虽然我不确定它是否会按照我认为的方式运行。这里的想法是替换创建一个换行符分隔列表(因为你不能在URL中有换行符),然后你可以用split()拆分列表来获取你的数组。

通过在ColdFusion中进行比较,你必须做一些稍微不同的事情:

a = REMatch('href="[^"]+"',source); 
for (i = 1; i < ArrayLen(a); i++) {
  a[i] = mid(a[i],6,len(a[i])-1); 
} 

同样,我还没有对它进行测试,但是rematch返回表达式的实例数组,然后for-next循环删除实际URL周围的href =“”。