Регулярное выражение, чтобы найти все ссылки на веб-странице
Я пытаюсь найти все ссылки в исходном коде на веб-сайте, может кто-нибудь сказать мне выражение, которое мне нужно было бы вставить в мой 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.