如何从下面的字符串中检索src路径?

时间:2014-01-29 06:24:39

标签: c# regex

string str = "class=\"customer-service-rightside-content-widget\"> <div class=\"content_asset\"> <p><img width=\"1300\" height=\"426\" alt=\"\" src=\"~/media/C14BCC5F47D54252B371B67E718DAC02.ashx\" ";

如何从下面的字符串中单独检索src路径。 我尝试了几个正则表达式,但我得不到正确的结果。我正在使用C#正则表达式。

3 个答案:

答案 0 :(得分:1)

试试这个正则表达式

<img([^>]*[^*]?)>

REGEX DEMO

答案 1 :(得分:0)

我建议您使用HtmlAgilityPack来解析HTML(可从NuGet获得)。但是你应该为这个字符串包括开始和结束标记(假设你有<div>),因为目前你有一些带有标记的子字符串:

string str = "<div class=\"customer-service-rightside-content-widget\"> <div class=\"content_asset\"> <p><img width=\"1300\" height=\"426\" alt=\"\" src=\"~/media/C14BCC5F47D54252B371B67E718DAC02.ashx\"/></div>";
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(str);
var img = doc.DocumentNode.SelectSingleNode("//img[@src]");
var src = img.Attributes["src"].Value; 

结果:

~/media/C14BCC5F47D54252B371B67E718DAC02.ashx

答案 2 :(得分:0)

这有点乱,但它快速而简单,您不必像其他一些答案那样安装任何软件包:

string str = "class=\"customer-service-rightside-content-widget\"> <div class=\"content_asset\"> <p><img width=\"1300\" height=\"426\" alt=\"\" src=\"~/media/C14BCC5F47D54252B371B67E718DAC02.ashx\" ";
            int srcIndex = str.IndexOf("~");
            str = str.Substring(srcIndex);
            var endIndex = str.IndexOf("\"");
            var thisIsYourSrc = str.Substring(0, endIndex); // this will be the value that's in your scr attribute

<强>结果:

〜/媒体/ C14BCC5F47D54252B371B67E718DAC02.ashx