NSString простое сопоставление с образцом - PullRequest
0 голосов
/ 17 июня 2010

Mac OS 10.6, проект Cocoa, требуется совместимость с 10.4.

(Обратите внимание: мои знания регулярных выражений довольно незначительны)

Мне нужно проанализировать NSStrings, для сопоставления случаев, когда строка содержит встроенный тег, где формат тега:

[xxxx]

Где xxxx - случайные символы.

например. «Быстрая коричневая лиса любит сокс».

В приведенном выше случае мне нужно взять строку "foxy". (Или ноль, если тег не найден.)

Каждая строка будет иметь только один тег, и этот тег может появляться в любом месте строки или может не отображаться вообще.

Может кто-нибудь помочь с этим, желательно без необходимости включать другую библиотеку, такую ​​как RegexKit. Спасибо за любую помощь.

1 Ответ

4 голосов
/ 17 июня 2010

Я бы предложил что-то вроде следующего:

NSString *subString = nil;
NSRange range1 = [myString rangeOfString:@"["];
NSRange range2 = [myString rangeOfString:@"]"];
if ((range1.length == 1) && (range2.length == 1) && (range2.location > range1.location)) {
  NSRange range3;
  range3.location = range1.location+1;
  range3.length = (range2.location - range1.location)-1;
  subString = [myString substringWithRange:range3];
}
...