2016-03-17 3 views
0

Я пытаюсь тянуть любые символы из середины этой строки (как показано жирным шрифтом):Как я вытаскиваю все главы из этого NSSting, используя регулярное выражение RegEx?

t_product_name: [ «ххх ууу ZZZ 111 222 333»],

Вот является код, который я пытаюсь, но это не работает для меня. Что я делаю неправильно с моим RegEx?

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"t_product_name:[\"(.*)\"]" options:NSRegularExpressionCaseInsensitive error:&error]; 
[regex enumerateMatchesInString:html options:0 range:NSMakeRange(0, [html length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 

    // detect 
    NSString *insideString = [html substringWithRange:[match rangeAtIndex:1]]; 

    //print 
    NSLog(@"t_product_name: %@", insideString); }]; 
+0

Почему вы используете регулярное выражение для этого? Просто найдите индекс двух символов '' 'и вытащите подстроку из этого диапазона. – rmaddy

ответ

0

Вы должны использовать ленивый квантификатор? как это и избежать [] двойные квадратные скобки.

Regex:t_product_name:\[\"(.*?)\"\]

Regex101 Demo

0

Используйте отрицается характер класс:

t_product_name:\["([^\"]+)"\] 

Внутренняя часть говорит: не совпадают все, кроме двойных кавычек (это не нужно для экранирования в квадратных скобках, но вам нужно будет сбежать в вашей строке), см. a demo on regex101.com.