1

我正在尝试使用逗号分隔字符串。但是,我不想包含引号区域内的逗号。在 Objective-C 中解决这个问题的最佳方法是什么?

我正在处理的一个例子是:

["someRandomNumber","Some Other Info","This quotes area, has a comma",...]

任何帮助将不胜感激。

4

1 回答 1

0

正则表达式可能适用于此,具体取决于您的要求。例如,如果您总是尝试匹配用双引号括起来的项目,那么查找引号可能比担心逗号更容易。

例如,您可以执行以下操作:

NSString *pattern = @"\"[^\"]*\"";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
  options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *matches = [regex matchesInString:string options:0 range:NSMakeRange(0, [string length])];

for (NSTextCheckingResult *match in matches) {
   NSRange matchRange = [match range];
   NString *substring = [string substringWithRange:matchRange];
   // do whatever you need to do with the substring
}

此代码查找括在引号中的字符序列(正则表达式模式"[^"]*")。然后对于每个匹配,它将匹配的范围提取为子字符串。

如果这不完全符合您的要求,那么调整它以使用不同的正则表达式模式应该不会太难。

我目前无法测试此代码,因此如果有任何错误,我深表歉意。希望基本概念应该清楚。

于 2013-06-24T23:50:41.543 回答