使用正则表达式从字符串中查找和提取子字符串

时间:2012-11-15 12:40:48

标签: ios regex

假设我有以下字符串:

  bla bla bla bla我不知道写什么START 名字1 END更多   bla bla bla bla我不知道写什么START 名字2 END更多   bla bla bla bla我不知道该怎么写START 名字3 结束

我想提取以下数组:

  

名称1

     

名称2

     

名称3

使用iOS SDK的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

试试这个:

NSArray *names = [yourString componentsSeparatedByString:@"START"];

NSArray *namesArray = [NSArray array];

for (int i = 1; i < [names count]; i++) {
    NSString *thisLine = [names objectAtIndex:i];
    NSString *name = [thisLine substringToIndex:[thisLine rangeOfString:@"END"].location];

    [namesArray addObject:name];
    NSLog(@"Your name: %@", name);
}

刚刚注意到你想要这个用Regex ......当然不是这个,但也许它有帮助!

答案 1 :(得分:1)

使用

NSRegularExpression regularExpressionWithPattern:@"(?<=START ).*?(?= END)" 

另见Use regular expression to find/replace substring in NSString

答案 2 :(得分:0)

使用正则表达式执行此操作:

(?<=START\s)(.+?)(?=\sEND)