如何在iPhone sdk中分隔字符串

发布于 2024-11-05 00:53:36 字数 75 浏览 3 评论 0原文

我需要获取 ( 和 ) 之间的字符串。例如,我有一个像“name(123)”这样的字符串。我需要获取 ( 和 ) 之间的 123 的值。

I need to get a string that which is in between ( and ). For example I have a string like "name(123)". I need to get the values of 123 which between ( and ).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

君勿笑 2024-11-12 00:53:36
NSString *string = @"name(123)";
NSString *seperatorCharsString = @"()";
NSCharacterSet *seperatorCharSet = [NSCharacterSet characterSetWithCharactersInString:seperatorCharsString];
NSArray *components = [string componentsSeparatedByCharactersInSet:seperatorCharSet];
NSString *number = [components lastObject];
NSString *string = @"name(123)";
NSString *seperatorCharsString = @"()";
NSCharacterSet *seperatorCharSet = [NSCharacterSet characterSetWithCharactersInString:seperatorCharsString];
NSArray *components = [string componentsSeparatedByCharactersInSet:seperatorCharSet];
NSString *number = [components lastObject];
小镇女孩 2024-11-12 00:53:36

您应该使用正则表达式来提取字符串,您可以使用块和 NSRegularExpression (自 iOS4.0 起)来做到

这一点:

NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:@"\(.*?\))" options:NSRegularExpressionCaseInsensitive error:nil];

[reg enumerateMatchesInString:<YOUR_STRING> options:0 range:NSMakeRange(0, [<YOUR_STRING> length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
    for (int i=0; i < match.numberOfRanges; i++) {
        NSRange range = [match rangeAtIndex:i];
        NSString *extractedString = [<YOUR_STRING> substringWithRange:range];
    }
}];

希望这有帮助,
文森特

You should use a regular expression to extract to the string, you can do that with blocks and NSRegularExpression (since iOS4.0)

Something like this :

NSRegularExpression *reg = [NSRegularExpression regularExpressionWithPattern:@"\(.*?\))" options:NSRegularExpressionCaseInsensitive error:nil];

[reg enumerateMatchesInString:<YOUR_STRING> options:0 range:NSMakeRange(0, [<YOUR_STRING> length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
    for (int i=0; i < match.numberOfRanges; i++) {
        NSRange range = [match rangeAtIndex:i];
        NSString *extractedString = [<YOUR_STRING> substringWithRange:range];
    }
}];

Hope this helps,
Vincent

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文