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

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


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

Google находит больше: html ссылки на регулярные выражения сайта: stackoverflow.com

1 Ответ

0 голосов
/ 19 января 2009

Я не уверен, как они будут переводиться в 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 удаляет href = "" вокруг фактического URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...