我有两个字符串如下:
NSString *newStr = @"143.2a";
NSString *expression = @"^([0-9]*)(\\.([0-9]{0,10})?)?$";
我想要子串“newStr”,例如“expression”中的所有字符都应该出现在subString之后。像
NSString * extractedString = @"143.2";
(除了单个'。'之外的所有字母和符号除外)
我该怎么做?
答案 0 :(得分:0)
首先,你的正则表达式模式不会提取该字符串。
如果你想检查一个或多个数字后跟一个点后跟一个或多个数字该模式应该是
NSString *expression = @"\\d+\\.\\d+";
要提取字符串,请使用Larme建议的NSRegularExpression
类。
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:expression options:0 error:nil];
NSTextCheckingResult *firstMatch = [regex firstMatchInString:newStr options:0 range:NSMakeRange(0, newStr.length)];
if (firstMatch) {
NSString *extractedString = [newStr substringWithRange:firstMatch.range];
NSLog(@"%@", extractedString);
} else {
NSLog(@"Not Found");
}