在 Objective-C 中我有一个字符串如下:
CAST(407704969.734560,
我想提取数字:
407704969.734560
我正在使用的代码是这个:
NSString *stringToCheck = @"CAST(407704969.734560,"
NSRange searchedRange = NSMakeRange(0, [stringToCheck length]);
NSString *pattern = @"(?<=CAST\\()(\\d+?.?\\d+?)(?=,)";
NSError *error = nil;
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:&error];
NSArray* matches = [regex matchesInString:stringToCheck options:0 range: searchedRange];
for (NSTextCheckingResult* match in matches) {
NSString* matchText = [stringToCheck substringWithRange:[match range]];
NSLog(@"match: %@", matchText);
}
我猜问题出在正则表达式中,我找不到任何关于它的教程。
最佳答案
您可以尝试使用以下正则表达式:
模式
CAST\((\d+?\.?\d+?),
输入
CAST(407704969.734560,
输出
Match 1: CAST(407704969.734560,
Group 1: 407704969.734560
或者,如果您只需要数字,请尝试以下操作:
模式
(?<=CAST\()(\d+?\.?\d+?)(?=,)
输入
CAST(407704969.734560,
输出
Match 1: 407704969.734560
这里有不长但非常好的正则表达式教程:
关于objective-c - 过滤文本的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20336977/