【发布时间】:2016-09-18 11:45:58
【问题描述】:
我有很多文件,其中一些文件有这样的时间戳前缀:
1 20160308 1340 - All-of-me_key.pdf
2 2016 05 15 00 45 - nobody-knows-you-when-you-are-down-and-out.pdf
其他没有前缀:
- praying-for-time_key.pdf
- purple rain.pdf
- rehab.pdf
前缀的格式各不相同。如您在上面看到的,有些有空白作为分隔符,而另一些则有破折号。
我想自动化一个过程以从相关文件名中删除前缀。
出于解释的目的,我创建了两个正则表达式模式:
atRegexArray = [NSArray arrayWithObjects:
@"[0-9]{8} +[0-9]{4} - ",
@"[0-9]{4} +[0-9]{2} +[0-9]{2} +[0-9]{2} +[0-9]{2} - ", nil ] ;
第一个模式检测第一种类型的前缀,第二种模式检测第二种类型的前缀。
第一类检测示例:
NSString * patternString = @"[0-9]{8} +[0-9]{4} - " ;
NSString *)theFileName = @"20160308 1340 - All-of-me_key.pdf" ;
NSString *string = theFileName;
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:patternString
options:NSRegularExpressionCaseInsensitive
error:&error];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:theFileName
options:0
range:NSMakeRange(0, [theFileName length])];
检测工作正常。问题是,我需要前缀的长度。 在此示例中,“20160308 1340 -”的长度为 16 在example2中“2016 05 15 00 45 -”的长度是19
我不知道如何自动获得这个长度。
有什么想法吗?
【问题讨论】:
-
您需要this吗?
标签: objective-c regex string nsregularexpression