You could use NSRegularExpression
instead. It does support
, btw, though you have to escape it in the string:
NSString *regex = @"\b-?1?[0-9]{2}(\.[0-9]{1,2})?\b";
Though, I think \W
would be a better idea, since \b
messes up detecting the negative sign on the number.
A hopefully better example:
NSString *string = <...your source string...>;
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"\W-?1?[0-9]{2}(\.[0-9]{1,2})?\W"
options:0
error:&error];
NSRange range = [regex rangeOfFirstMatchInString:string
options:0
range:NSMakeRange(0, [string length])];
NSString *result = [string substringWithRange:range];
I hope this helps. :)
EDIT: fixed based on the below comment.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…