来自现有字符串的子字符串 iOS
SubString from existing string iOS
我有两个字符串如下:
NSString *newStr = @"143.2a";
NSString *expression = @"^([0-9]*)(\.([0-9]{0,10})?)?$";
我想要子字符串 "newStr",例如我在 "expression" 中的所有字符都应该出现在子字符串之后。喜欢
NSString * extractedString = @"143.2";
(除了单'.'以外的所有字母和符号)
我该怎么做?
首先,您的正则表达式模式不会提取该字符串。
如果你想检查一个或多个数字后面是一个点然后是一个或多个数字模式应该是
NSString *expression = @"\d+\.\d+";
要提取字符串,请按照 Larme 的建议使用 NSRegularExpression
class。
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");
}
我有两个字符串如下:
NSString *newStr = @"143.2a";
NSString *expression = @"^([0-9]*)(\.([0-9]{0,10})?)?$";
我想要子字符串 "newStr",例如我在 "expression" 中的所有字符都应该出现在子字符串之后。喜欢
NSString * extractedString = @"143.2";
(除了单'.'以外的所有字母和符号)
我该怎么做?
首先,您的正则表达式模式不会提取该字符串。
如果你想检查一个或多个数字后面是一个点然后是一个或多个数字模式应该是
NSString *expression = @"\d+\.\d+";
要提取字符串,请按照 Larme 的建议使用 NSRegularExpression
class。
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");
}