在objective-c中查找标记之间的字符串

在objective-c中查找标记之间的字符串,objective-c,Objective C,我有一根很长的绳子 其中是标记,这些标记之间是文本 例如: <body>blah blah blah</body><body>another string</body> 我该怎么做 编辑-我可能不清楚。一个字符串中有许多相同类型的分隔符。因此,输入字符串可以是: <body>blah blah blah</body><body>another string</body><body>bla

我有一根很长的绳子

其中是标记,这些标记之间是文本

例如:

<body>blah blah blah</body><body>another string</body>
我该怎么做

编辑-我可能不清楚。一个字符串中有许多相同类型的分隔符。因此,输入字符串可以是:

<body>blah blah blah</body><body>another string</body><body>blah blah blah</body><body>another string</body><body>blah blah blah</body><body>another string</body><body>blah blah blah</body>
废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话废话

如果第一个分隔符只在文本中出现一次,您可以使用代码:

NSArray *c1 = [text componentsSeparatedByString:@"<body>"];
if ([c1 count]<2) {
    // you don't have first delimiter
}
NSArray *c2 = [[c1 objectAtIndex:1] componentsSeparatedByString:@"</body>"];
if ([c2 count]<2) {
    // you don't have second delimiter
}
NSString *result = [c2 objectAtIndex:0];
NSArray*c1=[由字符串分隔的文本组件:@”“;

如果([c1计数]如果第一个分隔符只在文本中出现一次,则可以使用代码:

NSArray *c1 = [text componentsSeparatedByString:@"<body>"];
if ([c1 count]<2) {
    // you don't have first delimiter
}
NSArray *c2 = [[c1 objectAtIndex:1] componentsSeparatedByString:@"</body>"];
if ([c2 count]<2) {
    // you don't have second delimiter
}
NSString *result = [c2 objectAtIndex:0];
NSArray*c1=[由字符串分隔的文本组件:@”“;

如果([c1计数]您可以使用
由字符串分隔的组件
由字符串连接的组件

NSString * dataString = [[NSString alloc] init];
dataString = [[dataString componentsSeparatedByString:@"<body>"] componentsJoinedByString:@","];
dataString = [[dataString componentsSeparatedByString:@"</body>"] componentsJoinedByString:@""];

NSArray *data = [dataString componentsSeparatedByString:@","];
NSString*dataString=[[NSString alloc]init];
dataString=[[dataString组件由字符串分离:@”“]组件由字符串连接:@“,”];
dataString=[[dataString组件由字符串分离:@”“]组件由字符串连接:@”“];
NSArray*数据=[dataString组件由字符串分隔:@“,”];

然后您将拥有一个字符串数组。

您可以使用
组件通过字符串分离
组件通过字符串连接

NSString * dataString = [[NSString alloc] init];
dataString = [[dataString componentsSeparatedByString:@"<body>"] componentsJoinedByString:@","];
dataString = [[dataString componentsSeparatedByString:@"</body>"] componentsJoinedByString:@""];

NSArray *data = [dataString componentsSeparatedByString:@","];
NSString*dataString=[[NSString alloc]init];
dataString=[[dataString组件由字符串分离:@”“]组件由字符串连接:@“,”];
dataString=[[dataString组件由字符串分离:@”“]组件由字符串连接:@”“];
NSArray*数据=[dataString组件由字符串分隔:@“,”];
然后您将拥有一个字符串数组。

您可以使用它来构建一个正则表达式来查找文本匹配项。如果分隔符都相同,这将非常简单。找到所有匹配项并使用它们构建一个数组或新字符串:

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<body>(.*)</body>"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];
NSError*error=NULL;
NSRegularExpression*regex=[NSRegularExpression regular expression with pattern:@”(.*)”
选项:nsregularexpressioncase不敏感
错误:&错误];
您可以使用构建正则表达式来查找文本匹配项。如果分隔符都相同,这将非常简单。找到所有匹配项并使用它们构建数组或新字符串:

NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<body>(.*)</body>"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];
NSError*error=NULL;
NSRegularExpression*regex=[NSRegularExpression regular expression with pattern:@”(.*)”
选项:nsregularexpressioncase不敏感
错误:&错误];

非常有用!虽然我不确定我是否完全理解这一点。代码如何抓住标记之间的内容?这些标记可以在一个字符串中出现多次。在第二个代码段中,扫描仪将传递字符串,直到遇到第一个分隔符。然后,扫描仪将吃掉并记住字符串中的所有字符,直到第二个分隔符。第一个代码段相同,但其行为更难理解,如果可能有几个开始和结束分隔符。哦,好的,那么在第二个示例中,第一个分隔符是不必要的。对吗?@SirYakalot,这取决于您需要什么。给出代码示例,我回答了您的问题。非常有用!尽管我不确定我是否完全理解。如何做es代码获取标记之间的内容?这些标记可以在一个字符串中出现多次。在第二个代码段中,扫描程序将传递字符串,直到遇到第一个分隔符。然后,扫描程序将读取并记住字符串中的所有字符,直到遇到第二个分隔符。第一个代码段执行相同的操作,但如果有,则其行为更难理解可能有几个开始和结束分隔符。哦,好的,在第二个示例中,第一个分隔符是不必要的。对吗?@SirYakalot,这取决于您需要什么。给出代码示例后,我回答了您的问题。不幸的是,NSRegularExpression仅在4.0版的iOS中出现。如果您需要支持Yes,但这不是问题的要求假设使用的是最新的sdk。我认为现在应用的目标用户少于iOS 4的情况非常罕见。我的应用仍有大约5%的客户端。我同意你的看法,如果不支持低于4的iOS是合理的,那么它已经低于阈值。不幸的是,NSRegularExpression仅在iOS 4.0中出现。如果你需要的话o后台支持是的,但这不是问题的要求——因此假设使用的是最新的sdk。我认为,现在应用的目标用户少于iOS 4的情况非常罕见。我的应用仍有大约5%的客户端。我可以同意,如果不支持iOS低于4,这已经低于阈值。