0

MailItem の添付ファイルと HTML コンテンツを Web ページとして表示できる場所に保存する Outlook アドインがあります。問題は、Outlook がすべての添付ファイルに 2 セットの 16 進コードを追加することです。例を次に示します。

<img width=700 height=119 id="_x0000_i1032" src="http://somesite/img/didyouknow/image001.jpg@01CD34FA.041E5EE0" alt="diduknow_header.gif">

すべてのイメージについて、上記から 01CD34FA.041E5EE0 を削除する最もクリーンな方法は何でしょうか?

4

2 に答える 2

0

このパターンを検索してみてください。

(src\=\".*?\.jpg)([^\"]+)(\")

そして、

$1$3

コードでは次のようになります。

string input = File.ReadAllText("path/to/the/outlook.mess");
string pattern = @"(src\=\"".*?\.jpg)([^\""]+)(\"")";
string cleanOutput = Regex.Replace(input, pattern, "$1$3");
File.WriteAllText("/path/to/the/outlook.clean", cleanOutput);

一重引用符の効果を得るには、引用符で囲まれた文字列で二重引用符を2回繰り返す必要があることに注意してください。

于 2012-12-04T22:10:44.300 に答える
0

シンプル:Outlookから完全なXMLドキュメントを取得しているので、最初にそれをXmlDocumentにロードします

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(html);
string imgsrc = xmlDoc["img"].Attributes["src"].InnerText; //I'm just guessing here without the full XML

imgsrc = imgsrc.Substring(0, imgsrc.LastIndexOf('@'));

文字列に@記号がない場合は例外が発生するため、エラーチェックを実行することをお勧めします。

于 2012-12-04T21:16:09.813 に答える