我有以下代码:
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。
有人可以告诉我上面的代码有什么问题吗?
干杯,
答案 0 :(得分:1)
只有一个匹配项,因为您的正则表达式与第一个http://
匹配,而.*
“吃掉”其余字符串。
为什么不搜索更像的内容:
http://
或者如果您尝试完整捕获每个网址,例如:
http://[^ ]*
这意味着在http://之后搜索任何不是空格的内容。
你应该通过某种正则表达式指南来阅读。