在字符串中,删除仅带数字的括号

时间:2014-05-19 03:11:06

标签: ios objective-c

我想你需要使用正则表达式才能实现这一目标,但基本上我想要一个字符串来自:

  

一些文字(123)

为:

  

一些文字

但是需要像Other text (Mixed123)这样的字符串保持不变。

这个代码会是什么样的?提前谢谢!

2 个答案:

答案 0 :(得分:1)

Isaac的回答帮助我指明了正确的方向,但最终,这是有效的:

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[(][0-9]+[)]" options:NSRegularExpressionCaseInsensitive error:&error];
name = [regex stringByReplacingMatchesInString:STRING options:0 range:NSMakeRange(0, [STRING length]) withTemplate:@""];

答案 1 :(得分:0)

以下是使用NSRegularExpression类的示例。运行它的代码相对简单。但是,我的正则表达能力不是我最强的套装,所以我希望我的表达能力正确。希望这会有所帮助。

NSString *string = @"Some text (123)";
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\([0-9]+\)"
                                                                       options:NSRegularExpressionCaseInsensitive 
                                                                         error:&error];

if (error)
{
    // Match failed, handle this.
}

NSArray *matches = [regex matchesInString:string
                                  options:0
                                    range:NSMakeRange(0, [string length])];
for (NSTextCheckingResult *match in matches)
{
    NSRange *matchRange = [match range];
    string = [string stringByReplacingCharactersInRange:matchRange withString:@""];
}