我有一个字符串如下:
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);
}
我想问题出现在正则表达式中,看到我找不到任何关于它的教程。
答案 0 :(得分:3)
您可以尝试使用以下正则表达式:
<强>模式强>
CAST\((\d+?\.?\d+?),
<强> INPUT 强>
CAST(407704969.734560,
<强>输出强>
Match 1: CAST(407704969.734560,
Group 1: 407704969.734560
或者,如果您只需要数字,请尝试:
<强>模式强>
(?<=CAST\()(\d+?\.?\d+?)(?=,)
<强> INPUT 强>
CAST(407704969.734560,
<强>输出强>
Match 1: 407704969.734560
在这里你没有多久但非常好的正则表达式教程: