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

我需要这个值:“moga.jpg” 注意:这个没有结束标签。所以,我无法成功地想出一个 linq 表达式。有没有使用 linq 或 regex 或其他东西的更清洁的方法?

4

2 回答 2

1

使用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;
于 2013-09-27T01:05:42.810 回答
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;
于 2013-09-27T01:25:39.897 回答