正则表达式以获取asp.net中图像的SRC

时间:2018-08-13 05:56:49

标签: asp.net regex

我有一个包含HTML代码和一个image的字符串。我需要从该字符串获取src属性的值。我尝试使用此代码,但无法正常工作

foreach (Match match in Regex.Matches(wordHTML, "<img.*?src=[\"'](.+?)[\"'].*?>", RegexOptions.IgnoreCase))
            {
                wordHTML = Regex.Replace(wordHTML, match.Groups[1].Value, "Temp/"+ match.Groups[1].Value);
            }

我的图片路径

<img width="165" height="138" src="636697542198949135.files/image002.jpg" v:shapes="Рисунок_x0020_7">

3 个答案:

答案 0 :(得分:0)

尝试一下:

<img\s+[^>]*\bsrc=["']([^"']+)["']

Demo

<img     # literal '<img'
\s+      # one or more 'spaces'
[^>]*    # 0 or more non-'>' character
\b       # word boundary
src=["'] # literal src=
["']     # " or '
([^"']+) # capture: one or more non ' and " character
["']     # literal "

尝试指定这样的模式:

  string pattern = @"<img\s+[^>]*\bsrc=[\"']([^\"']+)[\"']";

  foreach (Match match in Regex.Matches(sentence, pattern))

答案 1 :(得分:0)

我正在尝试这个表达式和这项工作。

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

答案 2 :(得分:0)

Julio的答案是一个很好的答案,但是下一个正则表达式使用反向引用,以防src中具有单引号或双引号,并且还考虑了空src的问题:

<img[^>]*?\ssrc=(["'])([^\1]*?)\1

img的完整src(不带引号)在正则表达式中为组号 2