如何从这个字符串中获取alt值?

时间:2013-09-27 00:51:43

标签: string linq

    <img src=\"%24FILEBASE%moga.jpg\" alt=\"moga.jpg\" width=\"882\" height=\"324\">

我需要这个值:“moga.jpg” 注意:此处没有结束标记。因此,我无法成功提出linq表达式。有没有更简洁的方法使用linq或正则表达式或其他东西?

2 个答案:

答案 0 :(得分:1)

使用HtmlAgilityPack解析HTML。不要使用LINQ-To-XML或regex to parse HTML

var document = new HtmlDocument();
document.LoadHtml(/* your html string */);

var navigator = (HtmlNodeNavigator)document.CreateNavigator();
var value = navigator.SelectSingleNode("//img/@src").Value;

答案 1 :(得分:0)

如果HTML格式完美,您可以根据需要使用正则表达式进行匹配!没问题。但@rexcfnghk建议在实际世界中是正确的......

如果有人想使用正则表达式...试试这个例子吧! 您可以更好地浏览collection以检查内容是否存在,当然......只需浏览MatchCollection类。

string htmlNode = "<img src=\"%24FILEBASE%moga.jpg\" alt=\"moga.jpg\" width=\"882\" height=\"324\">";
MatchCollection collection = Regex.Matches(htmlNode, "src=\\\"%24FILEBASE%(.*?)\\\"", RegexOptions.IgnoreCase);
string result = collection[0].Groups[1].Value;