我们如何从:
中获得子字符串NSString *string = @"exmple string [image]";
我们要在" [和"]之间提取字符串。
我正在考虑使用nsrange:
NSRange rangeStart = [title rangeOfString:@"[" options:NSLiteralSearch];
NSRange rangeEnd = [title rangeOfString:@"]" options:NSLiteralSearch];
,但我似乎找不到解决方案。
变体1:
NSRange rangeStart = [title rangeOfString:@"[" options:NSLiteralSearch];
NSRange rangeEnd = [title rangeOfString:@"]" options:NSLiteralSearch];
substring = [your_string substringWithRange:NSMakeRange(rangeStart.location + 1, rangeEnd.location - rangeStart.location - 1)];
变体2:
NSArray *ar = componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"[]"];
substring = ar[1];
看一下nsregularexpression,此答案将为您提供所需的正则表达式。
用法正则表达式( REGEX )是此类型的事情的方法:
NSError* error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\[(.*?)\]" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *str = @"example string [image]";
NSRange rangeOfFirstMatch = [regex rangeOfFirstMatchInString:str options:0 range:NSMakeRange(0, [str length])];
NSString *substringForFirstMatch;
if (!NSEqualRanges(rangeOfFirstMatch, NSMakeRange(NSNotFound, 0))) {
substringForFirstMatch = [str substringWithRange:NSMakeRange(rangeOfFirstMatch.location + 1, rangeOfFirstMatch.length - 2)];
}
NSLog(@"%@", substringForFirstMatch); // will print image