我该怎么做?我是Objective-C的新手,但我无法找到任何可以帮助我做到这一点的事情。
NSArray *splitLine = [currentLine componentsSeparatedByString:@":%@",notNumber];
其中notNumber
是一个字符串,表示任何不是数字的字符串。所以我想分隔一个字符串,其中冒号用不是数字的字符串分隔。 (我希望避免有时分割3:00pm
,但要分割为DESCRIPTION:
和LOCATION:
等iCal参数。)
答案 0 :(得分:1)
您可以通过几个步骤执行此操作,例如此操作。我没有编译这段代码,但它至少应该让你知道该怎么做。
1)创建一个正则表达式对象以匹配您的分隔符:
NSString *regexString = @"DESCRIPTION:\s|LOCATION:\s"; // or whatever makes sense for your scenario
NSRegularExpression *regex =
[NSRegularExpression regularExpressionWithPattern:regexString
options:NSRegularExpressionCaseInsensitive
error:nil];
2)用一个分隔符替换所有与正则表达式匹配的不同分隔符:
NSRange range = NSMakeRange(0, string.length);
NSString *string2 = [regex stringByReplacingMatchesInString:string
options:0
range:range
withTemplate:@"SEPARATOR"];
3)拆分字符串!
NSArray *elements = [string2 componentsSeparatedByString:@"SEPARATOR"];
答案 1 :(得分:1)
分裂字符串的最短解决方案。
NSString *str = @"Please split me to form array of words";
NSArray *wordsArray = [str componentsSeparatedByString:@" "];
答案 2 :(得分:0)
您可以使用正则表达式!
使用模式(我相信这是你问题的核心):
pattern = @"(?<=[^0-9]):(?=[^0-9])"
此模式仅匹配&#39;:&#39;不被数字包围的符号。
然后替换为不会在数据中显示的虚拟值
dummy = @"NEVERSEETHIS"
NSRegularExpressions *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSRange range = NSMakeRange(0, [string length])
NSString *modified= [regex replaceMatchesInString:yourString options:0 range:range withTemplate:dummy];
最后,拆分
return [modified componentsSeparatedByString:dummy];