Я нахожусь в iOS, но практически любой язык будет переведен.Regex, чтобы определить, является ли путь корневым каталогом
Я пытаюсь написать регулярное выражение соответствует корневому каталогу:
т.е.
Первый/должен соответствовать
Первого/file.txt не должен соответствовать
первого/следующий должен не соответствовать
Первый или следующий/файл.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");
}
Но его не соответствие, как это должно быть.
Думая
[^\\/]*
будут соответствовать все символы, которые не являются "/"
Тогда
\\/$
будет соответствовать "/", который находится в конце строки.
Куда я иду не так?
пример наряду с ожидаемым выходом будет лучше. –
Вы имеете в виду это '@"^[^ \\ /] */[^ \\ /] * $ "' –
Спасибо. Просто уточнить для моего собственного понимания.^[^ \\ /] * означает начало в начале и соответствие всем символам, кроме «/». Затем/соответствует одному «/», затем [^ \\ /] * $, который я не совсем уверен, зачем вам это нужно, но сопоставляйте любые символы, а не «/», а затем заканчивайте. Будет ли это делать то же самое @ "^ [^ \\ /] */$ – lostintranslation