我正在尝试使用regexkitlite在objective-c中进行字符串匹配,而我遇到了一些问题。我要做的是搜索一个大字符串以寻找匹配的字符串:
基本上,我想找到原始字符串中图像的所有链接。我现在拥有的是:
NSString *regexString = @"http://[a-zA-Z0-9._%+-/]+\.jpg";
现在这适用于.jpg图像,但当然它与.png图像不匹配。我真的想使用一个匹配的regexString,但我无法弄清楚如何。
阅读其他语言的一些正则表达式教程,我认为这有点像:
NSString *regexString = @"http://[a-zA-Z0-9._%+-/]+\.(?:jpg|png)";
但我不能说得对。
非常感谢任何帮助。
答案 0 :(得分:0)
文件扩展名周围不需要非捕获组。使用它们是一种很好的做法,但这可能会导致错误。 (图书馆是否支持它?)
另外,我使用预定义的字符类稍微简化了你的正则表达式。
NSString *regexString = @"http://[\w.%+-/]+\.(jpg|png)";
您可以在行动here中看到这一点。
您还可以添加所需的任何文件扩展名。例如:(jpg|png|gif|...)
。
已更新: Apple现在包含NSRegularExpression的正则表达式支持,可在OS X v10.7及更高版本中使用。