0

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 の数値を除いて、常に同じままです。

この方法を使用すると、X 値と Y 値は正常に抽出されますが、最終的な文字列は抽出されません。私は何を間違っていますか?

4

1 に答える 1

1

パターンはで終わり(%@)ます。代わりに終了する必要があり(.+)ます。

于 2013-02-08T21:53:17.460 に答える