2011-04-09 163 views
0

我想删除字符串的特定部分,到目前为止,我决定使用RegEx来匹配我想要删除的字符串部分,但之后我不知道如何从该字符串中删除特定的范围原始字符串...如何使用NSRegularExpression从字符串中删除子字符串?

我正在尝试将333-333 Anywhere Lane更改为333 Anywhere Lane。基本上我试图删除连字符后的任何其他数字。

这里是我的代码:

address = @"333-333 Anywhere Lane"; 

NSError *error = NULL; 

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"-[0-9]*" options:NSRegularExpressionCaseInsensitive error:&error]; 

NSRange rangeOfFirstMatch = [regex rangeOfFirstMatchInString:address options:0 range:NSMakeRange(0, [address length])]; 

NSLog(@"range of match = %d", rangeOfFirstMatch); 

if (!NSEqualRanges(rangeOfFirstMatch, NSMakeRange(NSNotFound, 0))) { 

    address = [address substringWithRange:rangeOfFirstMatch]; 
    NSLog(@"substring = %@", address8); 
    //i cant get the -333 but i don't know how to remove that..    

} 

任何想法?

预先感谢您!

回答

0

万一有人绊倒在此,认为接受答案的链接是模糊的,这里是代码:

address = @"333-333 Anywhere Lane"; 

NSError *error = NULL; 

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"-[0-9]*" options:NSRegularExpressionCaseInsensitive error:&error]; 

address = [regex stringByReplacingMatchesInString:address options:0 range:NSMakeRange(0, [address length]) withTemplate:@""]; 

NSLog(@"substring = %@", address8);