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

次の値が必要です: "moga.jpg" 注: この終了タグはありません。そのため、linq式をうまく思いつくことができませんでした。linq や regex などを使用するよりクリーンな方法はありますか?

4

2 に答える 2

1

HtmlAgilityPackを使用して HTML を解析します。HTML の解析にLINQ-To-XML または正規表現を使用しないでください。

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

Yout 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 に答える