<img src=\"%24FILEBASE%moga.jpg\" alt=\"moga.jpg\" width=\"882\" height=\"324\">
我需要这个值:“moga.jpg” 注意:此处没有结束标记。因此,我无法成功提出linq表达式。有没有更简洁的方法使用linq或正则表达式或其他东西?
答案 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;