从NSString中删除动态文本

时间:2013-01-14 16:34:04

标签: iphone ios objective-c regex nsregularexpression

我有一个带有一些我要删除的文本的NSString,这是我要从NSString中删除的文本:

Textid="more-98989">

该号码可以更改为另一个号码。

有什么办法吗?我需要正则表达式吗?

2 个答案:

答案 0 :(得分:1)

你绝对可以用正则表达式做到这一点,但你也可以轻松地做到这一点。找到要删除的字符串的初始部分,然后从"> 的位置搜索结束Textid=" 。这将为您提供需要删除的字符范围。

NSString *myString = "Blah blah Textid="more-98989"> More stuff";
NSString *res = nil;
NSRange start = [myString rangeOfString:@"Textid=\""];
if (start.location != NSNotFound) {
    NSRange end = [myString rangeOfString:@"\">" withOptions:NSLiteralSearch range:NSMakeRange(start.Location+1, myString.length-start.location-1)];
    if (end.location != NSNotFound) {
        res = [myString stringByReplacingCharactersInRange:NSMakeRange(start.location, end.location-start.location+2) withString:@""];
    }
}
if (!res) {
    // Starting or ending tags were not found
    res = myString;
}

答案 1 :(得分:0)

编辑

要从其他字符串中删除此字符串,请使用:

NSString *stringToRemove = [NSString stringWithFormat:@"more-%@", dynamicNumber];
NSString *newString      = [bigString stringByReplacingOccurrencesOfString:stringToRemove 
                                                                withString:@""];