我在 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;
}
}
}