我正在尝试使用逗号分隔字符串。但是,我不想包含引号区域内的逗号。在 Objective-C 中解决这个问题的最佳方法是什么?
我正在处理的一个例子是:
["someRandomNumber","Some Other Info","This quotes area, has a comma",...]
任何帮助将不胜感激。
我正在尝试使用逗号分隔字符串。但是,我不想包含引号区域内的逗号。在 Objective-C 中解决这个问题的最佳方法是什么?
我正在处理的一个例子是:
["someRandomNumber","Some Other Info","This quotes area, has a comma",...]
任何帮助将不胜感激。
正则表达式可能适用于此,具体取决于您的要求。例如,如果您总是尝试匹配用双引号括起来的项目,那么查找引号可能比担心逗号更容易。
例如,您可以执行以下操作:
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
}
此代码查找括在引号中的字符序列(正则表达式模式"[^"]*"
)。然后对于每个匹配,它将匹配的范围提取为子字符串。
如果这不完全符合您的要求,那么调整它以使用不同的正则表达式模式应该不会太难。
我目前无法测试此代码,因此如果有任何错误,我深表歉意。希望基本概念应该清楚。