Регулярное выражение, чтобы найти все ссылки на веб-странице

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


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

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

1 ответ

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

Я думаю, что в JavaScript это будет работать:

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

после чего будет массив, содержащий ссылки... хотя я не уверен, будет ли это работать именно так, как я думаю. Идея здесь состоит в том, что замена создает список, разделенный переносом строки (потому что у вас не может быть переноса строки в 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 удаляет href="" вокруг фактического URL.

Другие вопросы по тегам