NSRegularExpression的numberOfMatchesInString总是返回一个!

时间:2010-08-02 05:09:51

标签: iphone objective-c regex

我有以下代码:

NSString *text = @"http://bit.ly/111 http://bit.ly/222 http://www.www.www";
NSRegularExpression *aLinkRegex = [NSRegularExpression regularExpressionWithPattern:@".*http://.*" options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger numberOfMatches = [aLinkRegex numberOfMatchesInString:text options:0 range:NSMakeRange(0, [text length])];

我想在文本中找到http的数量(我知道这不是一个好的正则表达式),但是numberOfMatchesInString总是返回1,而它应该在上面的代码中返回3。

有人可以告诉我上面的代码有什么问题吗?

干杯,

1 个答案:

答案 0 :(得分:1)

只有一个匹配项,因为您的正则表达式与第一个http://匹配,而.*“吃掉”其余字符串。

为什么不搜索更像的内容:

http://

或者如果您尝试完整捕获每个网址,例如:

http://[^ ]*

这意味着在http://之后搜索任何不是空格的内容。

你应该通过某种正则表达式指南来阅读。