正则表达式确定路径是否是根目录

时间:2014-11-16 16:09:37

标签: ios regex nsregularexpression

我在iOS中,但几乎所有语言都会翻译。

我正在尝试编写一个正则表达式来匹配根目录:

即:

首先/应该匹配 First / file.txt不应该匹配 第一个/下一个不应该匹配 第一个/下一个/ file.txt不匹配

所以我认为逻辑应该从行匹配的开头开始,除了" /"然后匹配" /"只有一次,那一次应该在字符串的末尾。

我有:

    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\\/]*\\/$" options:NSRegularExpressionCaseInsensitive error:&error];

    NSUInteger matches = [regex numberOfMatchesInString:info.name options:NSRegularExpressionCaseInsensitive range:NSMakeRange(0, [info.name length])];
    if (matches > 0) {
      NSLog(@"match");
    } else {
      NSLog(@"not a match");
    }

但它不像它那样匹配。

思考

[^\\/]* 

将匹配所有不是" /"

的字符

然后

\\/$

将匹配" /"那是在字符串的末尾。

我哪里错了?

1 个答案:

答案 0 :(得分:2)

正则表达式为:

^[^/]*/$

这可以确保字符串以斜杠结尾,并且在它之前可以包含0个或更多非斜杠字符。

另一个解决方案(没有正则表达式)将是:

NSString *name = ... // some path
if (name.length && [name rangeOfString:@"/"].location == name.length - 1) {
    // root directory
}