Получение ссылки из html документа
Не могу понять как получить с помощью регулярных выражений из тега article значения свойства data-file-url то есть получить ссылку https://data/image.png.
<article id="post_299290" class="post-preview blacklisted" data-id="299290" data-approver-id="35" data-width="2528" data-height="2924"
data-flags="" data-score="0" data-fav-count="9" data-file-ext="png" data-normalized-source="" data-is-favorited="false"
data-file-url="https://data/image.png" data-uploader-id="39" data-large-file-url="https://data/sample/sample-image.jpg" data-preview-file-url="https://data/preview/image.jpg"/>
Ответы (3 шт):
Автор решения: Pavel Popov
→ Ссылка
Можете попробовать расширение для VS Regex Editor - очень помогает для составления паттернов
var input = "<article id=\"post_299290\" class=\"post-preview blacklisted\" data-id=\"299290\" data-approver-id=\"35\" data-width=\"2528\" data-height=\"2924\" \r\n data-flags=\"\" data-score=\"0\" data-fav-count=\"9\" data-file-ext=\"png\" data-normalized-source=\"\" data-is-favorited=\"false\" \r\n data-file-url=\"https://data/image.png\" data-uploader-id=\"39\" data-large-file-url=\"https://data/sample/sample-image.jpg\" data-preview-file-url=\"https://data/preview/image.jpg\"/>";
var regex = new Regex(@"data-file-url=""(\b(?:https?://|www\.)\S+\b)*""");
var matches = regex.Matches(input);
var links = matches.Select(x => x.Groups[1].Value);
Автор решения: dIm0n
→ Ссылка
Вот так вот без проверки тега:
(?<=data-file-url=")[^"]*
Из
<article id="post_299290" class="post-preview blacklisted" data-id="299290" data-approver-id="35" data-width="2528" data-height="2924"
data-flags="" data-score="0" data-fav-count="9" data-file-ext="png" data-normalized-source="" data-is-favorited="false"
data-file-url="https://data/image.png" data-uploader-id="39" data-large-file-url="https://data/sample/sample-image.jpg" data-preview-file-url="https://data/preview/image.jpg"/>
найдёт
https://data/image.png
Автор решения: Vladimir
→ Ссылка
Спасибо @dIm0n
var input = "<article id=\"post_299290\" class=\"post-preview blacklisted\" data-id=\"299290\" data-approver-id=\"35\" data-width=\"2528\" data-height=\"2924\" \r\n data-flags=\"\" data-score=\"0\" data-fav-count=\"9\" data-file-ext=\"png\" data-normalized-source=\"\" data-is-favorited=\"false\" \r\n data-file-url=\"https://data/image.png\" data-uploader-id=\"39\" data-large-file-url=\"https://data/sample/sample-image.jpg\" data-preview-file-url=\"https://data/preview/image.jpg\"/>";
string patern = @"(?<=data-file-url=" + "\"" + ")" + "[^" + "\"" + "]*";
var match = Regex.Match(input, patern);
@Pavel Popov Я не понял в чем проблема Select.