NSRegularExpression без скобок - PullRequest
1 голос
/ 22 января 2012

Я использую регулярные выражения, чтобы найти некоторые значения в строке, однако то, что я пытаюсь найти, выглядит примерно так:

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

1 Ответ

3 голосов
/ 22 января 2012

Попробуйте это:

@"^Dealt to (.{1,12}) \\[([0-9TJKQA][cdhs]) ([0-9TJKQA][cdhs])\\]"
...