【问题标题】:NSString simple pattern matchingNSString 简单模式匹配
【发布时间】:2011-03-04 18:44:43
【问题描述】:

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

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

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

[xxxx]

其中 xxxx 是随机字符。

例如“敏捷的棕色 [foxy] 狐狸喜欢短袜”。

在上述情况下,我需要抓取字符串“foxy”。 (如果没有找到标签,则为 nil。)

每个字符串只有一个标签,标签可以出现在字符串中的任何位置,也可能根本不出现。

有人可以帮忙解决一下吗,最好不要包含其他库,例如 RegexKit。感谢您的帮助。

【问题讨论】:

  • 接受的答案根本不是一般的。你有没有找到一种类似于正则表达式的方法?

标签: regex cocoa nsstring pattern-matching


【解决方案1】:

我建议如下:

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];
}

【讨论】:

  • 谢谢你,克里斯托!你是我翅膀下的风。 :-) 刚刚在第 6 行发现了一个小错误。应该是:“range3.location = range1.location + 1”。欢呼声。
猜你喜欢
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多