Objective-C RegexKitLite匹配一个或另一个字符串

时间:2011-09-29 01:30:11

标签: objective-c regex

我正在尝试使用regexkitlite在objective-c中进行字符串匹配,而我遇到了一些问题。我要做的是搜索一个大字符串以寻找匹配的字符串:

  • 的 “http:// [东西] .JPG”
  • 的 “http:// [东西] .PNG”

基本上,我想找到原始字符串中图像的所有链接。我现在拥有的是:

NSString *regexString = @"http://[a-zA-Z0-9._%+-/]+\.jpg";

现在这适用于.jpg图像,但当然它与.png图像不匹配。我真的想使用一个匹配的regexString,但我无法弄清楚如何。

阅读其他语言的一些正则表达式教程,我认为这有点像:

NSString *regexString = @"http://[a-zA-Z0-9._%+-/]+\.(?:jpg|png)";

但我不能说得对。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

文件扩展名周围不需要非捕获组。使用它们是一种很好的做法,但这可能会导致错误。 (图书馆是否支持它?)

另外,我使用预定义的字符类稍微简化了你的正则表达式。

NSString *regexString = @"http://[\w.%+-/]+\.(jpg|png)";

您可以在行动here中看到这一点。

您还可以添加所需的任何文件扩展名。例如:(jpg|png|gif|...)

已更新: Apple现在包含NSRegularExpression的正则表达式支持,可在OS X v10.7及更高版本中使用。