NSString简单模式匹配

时间:2010-06-17 04:09:52

标签: regex cocoa nsstring pattern-matching

Mac OS 10.6,Cocoa项目,需要10.4兼容性。

(请注意:我对正则表达式的了解很少)

我需要解析NSStrings,以匹配字符串包含嵌入式标记的情况,其中标记格式为:

[xxxx]

其中xxxx是随机字符。

e.g。 “快速棕色[狐狸]狐狸喜欢sox”。

在上面的例子中,我需要抓住字符串“foxy”。 (如果没有找到标签,则为零。)

每个字符串只有一个标记,标记可以出现在字符串中的任何位置,或者根本不显示。

有人可以帮助一个方法来做到这一点,最好不必包括其他库,如RegexKit。谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

我建议如下:

NSString *subString = nil;
NSRange range1 = [myString rangeOfString:@"["];
NSRange range2 = [myString rangeOfString:@"]"];
if ((range1.length == 1) && (range2.length == 1) && (range2.location > range1.location)) {
  NSRange range3;
  range3.location = range1.location+1;
  range3.length = (range2.location - range1.location)-1;
  subString = [myString substringWithRange:range3];
}