如何从字符串中提取字符串?

时间:2013-07-20 05:12:43

标签: objective-c regex substring

我正试图找到如何从“ /games/usa/2013-05-01/game1.html 2013-05-01 / game1 ” >“,但我不知道怎么做。我已经尝试了一些Regex,但它没有用。我也不知道这是不是最好的方法。这是我到目前为止所尝试过的。

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"/[0-9]{4}-[0-9]{2}-[0-9]-{2}\//\.*$)" options:NSRegularExpressionCaseInsensitive error:NULL];
NSTextCheckingResult *newSearchString = [regex firstMatchInString:opening_time options:0 range:NSMakeRange(0, [opening_time length])];
NSString *substr = [opening_time substringWithRange:newSearchString.range];
NSLog(@"%@", substr);

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:4)

一种方法是使用NSString' componentsSeparatedByString:方法。这是一个例子

NSString *str = [@"/games/usa/2013-05-01/game1.html" stringByDeletingPathExtension];
NSArray *components = [str componentsSeparatedByString:@"/"];
NSString *result = [NSString stringWithFormat:@"%@/%@", [components objectAtIndex:3], [components objectAtIndex:4]];
NSLog(@"%@", result);

当然,这将取决于格式永远不会改变的事实,如果它确实发生变化,这很可能不会起作用。

答案 1 :(得分:2)

试试这个:

@"[0-9]{4}-[0-9]{2}-[0-9]{2}/[^.]+"

或者这个:

@"[0-9]{4}-[0-9]{2}-[0-9]{2}/.+?(?=\\.html)"