【发布时间】:2019-03-26 22:34:30
【问题描述】:
我有一个包含多个标签的字符串,我试图将文本放在粗体中,然后删除粗体标签,如果它只包含一个标签,它就可以正常工作。现在,当字符串包含多个标签时,我试图循环它们,但它只捕获第一个。有人可以指出我在这里做错了什么吗?
string descriptionBody = "This is a <b>text</b> with multiple <b>bold</b> tags";
var content = new NSMutableAttributedString(descriptionBody);
int i = 0;
while (i < Regex.Matches(descriptionBody, "<b>").Count) {
int start = descriptionBody.IndexOf("<b>", StringComparison.Ordinal);
int end = descriptionBody.IndexOf("</b>", StringComparison.Ordinal);
int length = end - start;
var boldFirst = new NSRange(start, 3);
var boldLast = new NSRange(end, 4);
StringExtensions.ParseBoldTags(content, 14, start + 3, length - 3);
content.Replace(boldLast, string.Empty);
content.Replace(boldFirst, string.Empty);
i++;
}
【问题讨论】:
-
这是我的第一个想法,但如果我在 iOS 中将其解析为 HTML,它带有新的时代罗马字体,重要的是只解析粗体标签
-
解析HTML与iOS或字体有什么关系?
-
AngleSharp 是一个更好的 HTML 解析工具
标签: c# ios string xamarin while-loop