从NSStrings中提取数字

use*_*474 1 xcode ios

我有很多NSString,看起来像这样:

@"this is the content. The content of this string may vary, as well as the length, and my include any characters, with numbers Y = 295.000000 X = 207.500000"
Run Code Online (Sandbox Code Playgroud)

除了可能改变的X和Y数之外,Y = 295.000000 X = 207.500000的部分总是相同的.

我需要以某种方式获取这些数字并执行以下操作:

coordsFinal.x = 295.000000;
coordsFinal.y = 207.500000;
Run Code Online (Sandbox Code Playgroud)

其格式为:

coordsFinal.x = [NSString stringWithFormat: @"%@", trimmed string];
Run Code Online (Sandbox Code Playgroud)

有任何想法吗??

Mar*_*n R 5

您可以使用正则表达式来提取数字:

NSString *string = ...; // Your string
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"Y = (\\d+.\\d+) X = (\\d+.\\d+)" options:0 error:NULL];
NSTextCheckingResult *match = [regex firstMatchInString:string options:0 range:NSMakeRange(0, [string length])];
if (match) {
    NSRange yRange = [match rangeAtIndex:1];
    NSString *yString = [string substringWithRange:yRange];
    NSRange xRange = [match rangeAtIndex:2];
    NSString *xString = [string substringWithRange:xRange];

    NSLog(@"X = %@, Y = %@", xString, yString);
}
Run Code Online (Sandbox Code Playgroud)

输出:

X = 207.500000, Y = 295.000000
Run Code Online (Sandbox Code Playgroud)