我如何使用正则表达式RegEx从这个NSSting中删除所有章节?

时间:2016-03-17 19:04:55

标签: ios objective-c regex nsregularexpression

我试图从这个字符串的中间拉出任何字符(如粗体所示):

t_product_name:[" xxx yyy 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); }];

2 个答案:

答案 0 :(得分:0)

你应该使用懒惰量词吗?像这样并转义[]双方括号。

正则表达式: t_product_name:\[\"(.*?)\"\]

Regex101 Demo

答案 1 :(得分:0)

使用否定的字符类:

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

内部部分说:匹配除了双引号之外的所有内容(它不需要在方括号中转义,但需要在字符串中进行转义),请参阅a demo on regex101.com