Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSString操作。只删除日期_Ios_Objective C_Cocoa Touch_Nsstring_Nscharacterset - Fatal编程技术网

Ios NSString操作。只删除日期

Ios NSString操作。只删除日期,ios,objective-c,cocoa-touch,nsstring,nscharacterset,Ios,Objective C,Cocoa Touch,Nsstring,Nscharacterset,如果我在上有一个NSString,看起来像: 2-13-2014 Norway vs Canada Per 1 20-00 2 正在对其进行分析,日期将更改 我怎样才能把它变成 Norway vs Canada Per 1 换句话说,删除日期和结尾的额外字符 Iv'e使用: NSArray * dateComponents = [cleanString componentsSeparatedByCharactersInSet:

如果我在上有一个NSString,看起来像:

2-13-2014 Norway vs Canada Per 1 20-00 2
正在对其进行分析,日期将更改

我怎样才能把它变成

Norway vs Canada Per 1
换句话说,删除日期和结尾的额外字符

Iv'e使用:

NSArray * dateComponents = [cleanString
                            componentsSeparatedByCharactersInSet:
                            [NSCharacterSet
                             characterSetWithCharactersInString:@"-"]];

cleanString = [NSString stringWithFormat:@"%@", [dateComponents objectAtIndex:2]]; 
输出:

2014 Norway vs Canada Per 1 20

感谢您在空格上拆分。然后放下第一个组件和最后两个组件

NSString *input = @"2-13-2014 Norway vs Canada Per 1 20-00 2";

NSArray *words = [input componentsSeparatedByString:@" "];
words = [words subarrayWithRange:NSMakeRange(1, words.count - 3)];
NSString *output = [words componentsJoinedByString:@" "];

如果格式与特定格式一致,则可以使用正则表达式。例如,如果格式始终为:

dd-dd-dddd xxxxxxxxxxxxxxxxx dd-dd d
如果您需要帮助破译正则表达式,我可以让您参考。

使用NSRegularExpression或NSScanner.btw:what is
timezoneComponents
?@vikingosegundo这是一个打字错误。我更新了问题,我怀疑输出将是2014年挪威对加拿大每120次。它应该是
2
,但这会导致您在该行的剩余部分丢失任何额外的空格,这可能是可以接受的,也可能是不可以接受的。也许最好是在第一个空白之后扫描第一个非空白,然后在那里截断。如果你认为这样更好,就把它作为一个答案发布。不,我太懒了。太好了!正是我需要的。谢谢你的帮助!
NSError *error;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\\s*\\d{1,2}-\\d{1,2}-\\d{2,4}\\s+(.+)\\s+\\d{1,2}-\\d{1,2}\\s*\\d\\s*$" options:0 error:&error];

NSTextCheckingResult *result = [regex firstMatchInString:string options:0 range:NSMakeRange(0, [string length])];
if (result) {
    NSRange range = [result rangeAtIndex:1];             // find the NSRange for the stuff in the parentheses
    NSString *found = [string substringWithRange:range]; // get the string for that range
    NSLog(@"found = '%@'", found);
}