Eth*_*len 5 cocoa-touch objective-c nsstring ios nsrange
我有以下NSString:
Hello (my name is) John
Run Code Online (Sandbox Code Playgroud)
如何(my name is)快速轻松地拆卸零件?我想确保它处理只有a (然后跟随)并且不会崩溃的情况.
小智 8
如果要删除括号中的文本,那么......好吧,删除括号中的文本.
NSMutableString *s = [NSMutableString stringWithString:@"Hello (my name is) John"];
NSRange start = [s rangeOfString:@"("];
NSRange end = [s rangeOfString:@")"];
[s deleteCharactersInRange:(NSRange){ start.location, end.location - start.location + 1}];
Run Code Online (Sandbox Code Playgroud)
(重复过程,直到有parens)
使用正则表达式(贪婪)很容易做到:
NSError *error = NULL;
NSString *stringToBeReplaced = @"Hello (my name is) John";
NSString *regexString = @"\\(.*\\)";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:stringToBeReplaced options:0 range:NSMakeRange(0, [stringToBeReplaced length]) withTemplate:@""];
// Greedy means it will match "My name (is John) (Jobs)." => "My name ."
Run Code Online (Sandbox Code Playgroud)
对于非贪婪的正则表达式,请使用:
NSString *regex = @"\\(.*?\\)";
Run Code Online (Sandbox Code Playgroud)