NSRegularExpression строка, ограниченная - PullRequest
1 голос
/ 06 июля 2011

У меня есть строка, например, @"You've earned Commentator and 4 ##other$$ badges".Я хочу получить подстроку @"other", которая ограничена ## и $$.Я сделал NSRegularExpression следующим образом:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"##(.*)$$" options:NSRegularExpressionCaseInsensitive error:nil];

Это полностью игнорирует $$ и возвращает вещи, начинающиеся с ##.Что я делаю неправильно?спасибо.

Ответы [ 2 ]

1 голос
/ 06 июля 2011

Я бы не использовал регулярное выражение в этой ситуации, поскольку разбивка строк очень проста. Нет необходимости в дополнительных затратах на компиляцию выражения.

NSString *source = @"You've earned Commentator and 4 ##other$$ badges";
NSRange firstDelimiterRange = [source rangeOfString:@"##"];
NSRange secondDelimiterRange = [source rangeOfString:@"$$"];
NSString *result = [source substringWithRange:
  NSMakeRange(firstDelimiterRange.origin +2, 
    firstDelimiterRange.origin - secondDelimiterRange.origin)];
1 голос
/ 06 июля 2011

Это потому, что «$» - это специальный символ, обозначающий конец строки. Попробуйте \$\$ убежать от него и сообщить парсеру, что вам нужны символы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...