我有一个包含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">
答案 0 :(得分:0)
尝试一下:
<img\s+[^>]*\bsrc=["']([^"']+)["']
<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