2

我正在使用正则表达式在字符串中查找一些值,但是,我要查找的内容如下所示:

Dealt to SanderDecler [2s 5d]

但我似乎无法找到逃避这些方括号的方法,我之前也遇到过同样的括号问题。我试图像这样\(或\ [,但没有给出任何匹配项。所以我只是用一个点替换它,它确实匹配,但是,这似乎不是最好的方法这样做,我可以想象指定确切的字符对性能来说也更好......

所以我的问题是,如何匹配括号和方括号?

这是我的代码现在的样子,这是有效的,但不是最佳的:

    NSString *expression = 
    @"^Dealt to (.{1,12}) .([0-9TJKQA][cdhs]) ([0-9TJKQA][cdhs]).";

    NSRegularExpression *regex = 
    [NSRegularExpression regularExpressionWithPattern:expression
                                              options:NSRegularExpressionAnchorsMatchLines
                                                error:nil];

    for (NSTextCheckingResult *result in [regex matchesInString:history options:NSMatchingReportCompletion range:NSMakeRange(0, history.length)]) 
    {
        NSLog(@"%@", [history substringWithRange:[result rangeAtIndex:0]]);
    }
4

1 回答 1

4

试试这个:

@"^Dealt to (.{1,12}) \\[([0-9TJKQA][cdhs]) ([0-9TJKQA][cdhs])\\]"
于 2012-01-22T11:01:09.030 回答