用于过滤文本的正则表达式

时间:2013-12-02 20:14:58

标签: objective-c regex cocoa

在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);
}   

我想问题出现在正则表达式中,看到我找不到任何关于它的教程。

1 个答案:

答案 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

在这里你没有多久但非常好的正则表达式教程:

www.codeproject.com