Регулярное выражение для поиска всех ссылок на веб-странице

Я пытаюсь найти все ссылки в исходном коде на веб-сайте, может ли кто-нибудь сказать мне выражение, которое мне нужно будет добавить в мое Regex, чтобы найти их?


Дубликат (среди прочих): Регулярное выражение для разбора ссылок с веб-страницы?

Google находит больше: html ссылки regex site: stackoverflow.com

Ответ 2

Я не уверен, как это перевести на С# (я еще не делал никаких разработок в С#), но вот как это сделать в JavaScript или ColdFusion. Это может дать вам представление о том, как вы хотите сделать это на С#.

В JavaScript я think это сработает:

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); 
} 

Опять же, я его не тестировал, но рематч возвращает массив экземпляров выражения, а затем цикл for-next удаляет href="" вокруг фактического URL-адреса.