在NSString中搜索以特定文本开头并以“

时间:2012-02-13 22:09:48

标签: html objective-c ios arrays nsstring

我有一个NSString,其中包含网页的html代码。 现在,我如何在整个字符串中搜索以'data-src =“http://'开头并以”?“结尾的所有单词。 我将它们保存在一个数组中。 我的字符串叫做urlPage

PS:我不希望这些词有'data-src =“http://'和”。我只想要这两个之间的文字

2 个答案:

答案 0 :(得分:1)

以下是一些示例代码:

NSString *string;
NSString *pattern;
NSRegularExpression *regex;

string = @" aa data-src=\"http://test1\" cd data-src=\"http://test2\" cd";
pattern = @"data-src=\"http://([^\"]+)\"";

regex = [NSRegularExpression
         regularExpressionWithPattern:pattern
         options:NSRegularExpressionCaseInsensitive
         error:nil];

NSArray *matches = [regex matchesInString:string
                                  options:0
                                    range:NSMakeRange(0, [string length])];

for (NSTextCheckingResult *match in matches) {
    NSRange range = [match rangeAtIndex:1];
    NSLog(@"match: '%@'", [string substringWithRange:range]);
}

NSLog输出:
匹配:'test1'
匹配:'test2'

答案 1 :(得分:0)

最好的办法是使用NSRegularExpression搜索字符串。特别是enumerateMatchesInString:options:range:usingBlock:方法。在这种方法中,您将获得适合您的正则表达式的结果,如果需要,您可以手动删除开头部分和问号。