2013-02-08 4 views
0

Я Обрезка NSString следующим образом:Обрезка NSString

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"X = (\\d+.\\d+), Y = (\\d+.\\d+), (%@)" options:0 error:NULL]; 
NSTextCheckingResult *match = [regex firstMatchInString:txt.text options:0 range:NSMakeRange(0, [txt.text length])]; 
if (match) { 
    NSRange firstHalfRange = [match rangeAtIndex:1]; 
    NSString *xString = [txt.text substringWithRange:firstHalfRange]; 
    NSRange secondHalfRange = [match rangeAtIndex:2]; 
    NSString *yString = [txt.text substringWithRange:secondHalfRange]; 
    NSRange thirdHalfRange = [match rangeAtIndex:3]; 
    NSString *colorString = [txt.text substringWithRange:thirdHalfRange]; 

    NSLog(@"X = %@, Y = %@, Color: %@", yString, xString, colorString); 
} 

NSString выглядит следующим образом:

@"this is the content. The content of this string may vary, as well as the length, and my include any characters, with numbers X = 295.000000, Y = 207.500000, TheWhite" 

Часть Y = 295,000000 X = 207,500000 всегда остается такой же, за исключением числа X и Y, которые могут меняться, а также: TheWhite, который может стать, например, TheBlack

Используя этот метод, я успешно извлекаю значения X и Y, но не последнюю строку. Что я делаю не так?

ответ

1

Ваш шаблон заканчивается (%@). Вместо этого я должен положить (.+).

Смежные вопросы