<img src=\"%24FILEBASE%moga.jpg\" alt=\"moga.jpg\" width=\"882\" height=\"324\">
我需要这个值:“moga.jpg” 注意:这个没有结束标签。所以,我无法成功地想出一个 linq 表达式。有没有使用 linq 或 regex 或其他东西的更清洁的方法?
使用HtmlAgilityPack解析 HTML。不要使用 LINQ-To-XML 或正则表达式来解析 HTML。
var document = new HtmlDocument();
document.LoadHtml(/* your html string */);
var navigator = (HtmlNodeNavigator)document.CreateNavigator();
var value = navigator.SelectSingleNode("//img/@src").Value;
如果您的 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;