在多次出现的字符串之间获取字符串

时间:2017-11-08 09:18:59

标签: ios objective-c nsstring

我发现了很多例子how to find string between 2 strings,但没有一个显示如何处理该字符串的多次出现。我有像这样的字符串

&#34;嗨,我是<id>用户</id>。我已年满<id></id>,住在<id>某个国家</id>。&#34;

背后的想法是我想在UITextField内超链接每个字符串,并从字符串中删除标签。我还有2种类型的标签,一种应该显示超链接,另一种应该弹出警报视图,并点击单词或短语的一些文字说明。

编辑:

找到一个非常好的工作解决方案,通过在文本中提供的标签之间使用属性字符串更改文本内容来扩展此逻辑。链接here

2 个答案:

答案 0 :(得分:1)

@Aleksandar尝试这个..它对我有用..

zIndex()

答案 1 :(得分:1)

请查看此内容,我希望这能让您了解关键字存在的所有范围

NSString *serverOutput = @"Hi, I am <id>User</id>. I am 20 <id>years old</id>, and live in <id>some country</id>";
NSUInteger count = 0, length = [serverOutput length];
NSRange startRange = NSMakeRange(0, length);
NSRange endRange = NSMakeRange(0, length);
while(startRange.location != NSNotFound)
{
    startRange = [serverOutput rangeOfString: @"<id>" options:0 range:startRange];
    if(startRange.location != NSNotFound)
    {
        endRange = [serverOutput rangeOfString: @"</id>" options:0 range:endRange];
        startRange = NSMakeRange(startRange.location + startRange.length, length - (startRange.location + startRange.length));
        endRange = NSMakeRange(endRange.location + endRange.length, length - (endRange.location + endRange.length));
        count++;
    }
}

startRange将是标签开始和endRange开始的范围

您可以更改范围,位置,创建属性字符串并添加超链接,因为您可以使用字符串范围。