ios - NSString 去掉括号

标签 ios iphone objective-c nsstring

我正在使用此函数删除括号及其内部:

+(NSString*)removeCharsBetweenBrackets:(NSString*)str {
NSRange range = [str rangeOfString:@"("];
if (range.location != NSNotFound) {
    NSRange range2 = [str rangeOfString:@")"];

    if (range2.location != NSNotFound) {
        NSString *str1 = [str substringToIndex:range.location];
        NSString *str2 = [str substringFromIndex:range2.location + 1];
        str = [NSString stringWithFormat:@"%@ %@",str1,str2];
    }
}

range = [str rangeOfString:@"["];
if (range.location != NSNotFound) {
    NSRange range2 = [str rangeOfString:@"]"];

    if (range2.location != NSNotFound) {
        NSString *str1 = [str substringToIndex:range.location];
        NSString *str2 = [str substringFromIndex:range2.location + 1];
        str = [NSString stringWithFormat:@"%@ %@",str1,str2];
    }
}

return str;
}

我调用了两次删除了两次,它完美地删除了它。

问题是当我有这样的字符串时:

Mystring(blablabla)(*).mp3

* - Is a number. can be 0-999

我只想删除 (*)。

我如何实现它?

编辑:

字符串可以是:

mystring(bla bla)(1).mp3
mystring(bla bla)(1123).mp3
mystring(99).mp3
mystring(9).mp3
mystring.mp3
mystring(bla bla).mp3

如果 (number) 存在,我需要删除它。

最佳答案

NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"\\([0-9]{1,3}\\)" options:0 error:NULL];

NSString *result = [regexp stringByReplacingMatchesInString:string
                                                    options:0
                                                      range:NSMakeRange(0, [string length])
                                               withTemplate:@""];

关于ios - NSString 去掉括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094427/

相关文章:

iOS 后退按钮没有内边距

ios - 在 CGContextRef 中为 drawInRect 应用转换

ios - iOS-系统声音未播放

iphone - iOS 分发的 App ID

iphone - 遍历 SQLite_master 表并删除表

objective-c - 以用户身份运行的守护进程无人需要从桌面复制文件

ios - 从 NSManaged 对象中过滤掉整数

iphone - 在 Storyboard 中实现一个 AlertBox

objective-c - Objective-C快速枚举和异步服务器操作。模型帮助?

iphone - MPMoviePlayerController 问题