Windows Phone 7.5 以降のプロジェクト ターゲットに取り組んでいます。
strA を strBにしたい
のですが、strA に
は [img]attachmenti[/img] ペアがたくさんあります。[img] ペアを別のペアに変換して、RichTextBox で使用できるようにしたいです。[保持する配列があります。画像の URL を Image Source プロパティに渡します]
//example data
strA = this a good day.[img]attachment1[/img]I love it[img]attachment2[/img];
strB = this a good day.<InlineUIContainer><Image Source="XXXXXX"></Image><InlineUIContainer>I love it<InlineUIContainer><Image Source="XXXXXX"></Image><InlineUIContainer>
問題は何ですか
MatchCollection を使用して、文字列内の一致するすべての部分を取得します。即時ウィンドウで結果を確認します。コードは問題ありませんが、問題は MatchCollection が読み取り専用であり、その値を置き換えることができないため、一致後にこれらの文字列を置き換えるにはどうすればよいですか、またはこれを実装するより良い方法はありますか?
foreach (var item in rawdata.data)
{
if ( item.thumbnail != null)
{
MatchCollection mc = Regex.Matches(item.text, @"\[img\](.+?)\[/img\]", RegexOptions.Compiled | RegexOptions.Singleline);
int i = 0;
foreach (Match nextMatch in mc)
{
string imghead = @"<InlineUIContainer><Image" + " Source=\"" + item.thumbnail[i] + "\">";
StringBuilder sb = new StringBuilder();
sb.Append(@"<InlineUIContainer><Image");
sb.Append(" Source=\"");
sb.Append(item.thumbnail[i]);
sb.Append("\">");
sb.Append(@"</Image></InlineUIContainer>");
nextMatch.Value.Replace( nextMatch.Value, sb.ToString());
i = i + 1;
}
}
}