如何从字符串变量中获取src的值

时间:2014-03-10 13:39:55

标签: c# string

我有一个字符串值,它具有以下声明值:

<img alt="Desert.jpg" src="/PublishingImages/Lists/Images/NewForm/Desert.jpg" width="174" style="BORDER: 0px solid; ">

该值将具有不同的src值。我想要做的是获取src中的值。我在考虑使用子字符串,但由于src中的值可以变化,我不知道如何实现这一点。

这就是我需要的/PublishingImages/Lists/Images/NewForm/Desert.jpg

感谢任何形式的帮助。

6 个答案:

答案 0 :(得分:2)

使用Regex.Match(yourString, "src=.*?\"")之类的内容,然后从第5个字符开始执行子字符串并删除最后一个引号。正则表达式可能不正确。你应该明白这个想法。

答案 1 :(得分:1)

使用HtmlAgilityPack解析HTML:

var doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(@"PathToFile"); // or use doc.LoadHtml to get it from a string
var imgHrefSrc = doc.DocumentNode.SelectSingleNode("//img").Attributes["src"];
string value = imgHrefSrc.Value; // /PublishingImages/Lists/Images/NewForm/Desert.jpg

How to use HTML Agility pack

答案 2 :(得分:1)

我建议使用HtmlAgilityPack解析HTML(可从NuGet获得):

string html = "<img alt=\"Desert.jpg\" src=\"/PublishingImages/Lists/Images/NewForm/Desert.jpg\" width=\"174\" style=\"BORDER: 0px solid; \">";
var img = HtmlNode.CreateNode(html);
var src = img.Attributes["src"].Value;

结果:

"/PublishingImages/Lists/Images/NewForm/Desert.jpg"

答案 3 :(得分:0)

我知道你想在c#中得到答案,但这是一个解析你的字符串并将url写入控制台的java代码:

public class HelloWorld{

     public static void main(String []args){
       String x= "<img alt=\"Desert.jpg\" src=\"/PublishingImages/Lists/Images/NewForm/Desert.jpg\" width=\"174\" style=\"BORDER: 0px solid; \">";
       String a=x.split(" ")[2].split("\"")[1];

           System.out.println(a);

     }
}

答案 4 :(得分:0)

您可以使用Regex作为最简单的解决方案,不需要您可能需要或不需要的其他库:

Regex rx = new Regex("src\\s?=\\s?\"[^\"]*\"");
string x = "<img alt=\"Desert.jpg\" src=\"/PublishingImages/Lists/Images/NewForm/Desert.jpg\" width=\"174\" style=\"BORDER: 0px solid; \">";

Console.WriteLine(rx.IsMatch(x));

请注意,此正则表达式允许'src','='和引用值之间的空格,并查找开始和结束报价。

答案 5 :(得分:0)

尝试使用正则表达式作为轻量级解决方案。

试试这个正则表达式(在http://regexpal.com/上测试):

src=\"([^\"]*)\"

您可以使用捕获的组

提取字符串

示例代码:

string input = "<img alt=\"Desert.jpg\" src=\"/PublishingImages/Lists/Images/NewForm/Desert.jpg\" width=\"174\" style=\"BORDER: 0px solid; \">";
string pattern = "src=\"([^\"]*)\"";
string extractedString = Regex.Match(input, pattern).Groups[1].Value;