我正在寻找一种从NSString中提取产品价格的简便方法。 我尝试过正则表达式,但总会发现一些不匹配的情况。
价格可以是任何数字,包括小数,0 和-1 (有效价格:10,10.99,-1,0)。
NSString可以包含如下字符串:@“产品价格:10.99美元”
谢谢!
答案 0 :(得分:2)
这将匹配您提供的所有示例
-?\d+(\.\d{2})?
可选择-
,后跟1位数字,可选地后跟小数点和2位数。
如果您有其他数字并非数据混入数据,那么我认为正则表达式无法满足您的需求。
答案 1 :(得分:2)
NSString *originalString = @"Prod. price: $10.99";
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"-0123456789"];
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
double number;
[scanner scanDouble:&number];
数字等于10.99
显然,如果你在寻找的价值之前有其他数字,你就找不到它。
答案 2 :(得分:0)
假设您的NSString将始终包含$ prep准备结束的价格,以下正则表达式将符合您的需求
* \ $。?(? - ?(\ d +)(\ d {1,2}))
上述正则表达式匹配后,您可以找到match.group(1)作为NSString的价格。