<img src=\"%24FILEBASE%moga.jpg\" alt=\"moga.jpg\" width=\"882\" height=\"324\">
次の値が必要です: "moga.jpg" 注: この終了タグはありません。そのため、linq式をうまく思いつくことができませんでした。linq や regex などを使用するよりクリーンな方法はありますか?
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;
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;