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 に答える