Regex для получения значения src из тега img

Я использую следующее регулярное выражение, чтобы получитьsrc значение первогоimg тег в документе HTML.

string match = "src=(?:\"|\')?(?<imgSrc>[^>]*[^/].(?:jpg|png))(?:\"|\')?"

Теперь он захватывает всегоsrc атрибут, который мне не нужен. Мне просто нужен URL внутриsrc приписывать. Как это сделать?

Ответы на вопрос(3)

увидетьКогда не использовать Regex в C # (или Java, C ++ и т. Д.) а такжеИщу C # HTML парсер

PS, как я могу поставить ссылку на вопрос StackOverflow в комментарии?

Решение Вопроса

Parse your HTML with something else. HTML не обычный и, таким образом, регулярные выражения вообще не подходят для его анализа.

Используйте HTML-анализатор или XML-анализатор, если HTML строгий. Намного проще получить значение атрибута src с помощью XPath:

//img/@src

Синтаксический анализ XML встроен вSystem.Xml namespace, Это невероятно мощно.HTML-разбор немного сложнее, если HTML не строгий, но есть много библиотек, которые сделают это за вас.

Ваше регулярное выражение должно (на английском языке) соответствовать любому символу после кавычки, который не является кавычкой внутри тега в атрибуте src.

В регулярных выражениях Perl это было бы так:

/src=[\"\']([^\"\']+)/

URL будет в$1 после запуска этого.

Конечно, это предполагает, что URL-адреса в ваших атрибутах src заключены в кавычки. Вы можете изменить значения в[] скобки соответственно, если они не.

Ваш ответ на вопрос