我有一些文本加载到NSString对象中,其中包含方括号中的注释 - 我需要删除方括号及其中的所有内容,以便仅向用户显示正文。
但是,由于Objective-C依赖于方括号用于消息传递等...,我在移除它们时遇到了一些问题。
使用方括号是否有一些特殊的转义字符(例如作为'rangeOfString:'的参数)? Xcode反复通知我没有。
干杯
答案 0 :(得分:3)
您可以使用正则表达式删除所需的子字符串:
NSString *s = @"hi[bla]tototo[lalA123]a";
NSString *result = [s stringByReplacingOccurrencesOfString:@"\\[[\\w]+\\]"
withString:@""
options:NSRegularExpressionSearch|NSCaseInsensitiveSearch
range:NSMakeRange(0, [s length])];
NSLog(@"%@", result);
// output "hitototoa"
P.S。如果注释可能包含与'\ w'说明符不匹配的字符,则可能需要调整正则表达式模式
答案 1 :(得分:1)
您的意思是@"["
和@"]"
?
Objective-C中的任何字符串必须介于@"
和"
之间。
答案 2 :(得分:0)
我认为弗拉基米尔基于正则表达式的答案很好,但我想解决使用rangeOfString的问题,因为OP听起来很混乱。在NSStrings中使用方括号没有问题,这与Objective C使用方括号进行消息传递无关。
这对我来说很好用:
SomeClass sc1 = new SomeClass();
SomeClass sc2 = (SomeClass)sc1.clone();