我正在寻找一些关于如何解决这个问题的建议。
我从 API 获取字符串,其中可能包含 HTML 标记,例如斜体文本、粗体文本、链接、图像、段落等。
我可能会选择我通常非常喜欢的TTTAttributedLabel 。
在解析过程中,我从原始字符串中创建了一个字符串,该字符串去除了所有 HTML 标记。我正在使用一个项目中的NSString+HTML,这似乎效果很好。
现在我想要做的是准备一个NSAttributedString
可以TTTAttributedLabel
用来显示具有正确格式的文本。
我还想同时在一个单独的数组中准备链接。
我想知道 Regex 是否是合适的方法,以及我将如何实现它。
使用 Regex,我可以使用 查找任何 HTML 标签<[^>]*>
,但是,我想知道标签之间的文本。
以下面的字符串为例:
The <b>quick</b> brown fox <i>jumps</i> over the <a href="http://dog.com">lazy dog</a>.
应显示为:
敏捷的棕色狐狸跳过懒惰的狗。
现在,我基本上想要的是NSRange
标签内出现的每个文本及其类型的 s(但将标签排除在等式之外)。例如,对于上面的文本,我会得到:
NSRange boldRange = NSMakeRange(4, 3);
NSRange italicRange = NSMakeRange(20, 5);
NSRange urlRange = NSMakeRange(35, 8);
我认为这应该作为一个循环来完成,这样我就可以向我正在创建的 NSAttributedString 添加格式,当然还可以将 URL 范围保存到一个单独的数组中,这样我就可以在显示期间创建链接。
有没有图书馆可以帮助我。当我找到东西时,我会尝试更新这个问题。