我是一个UITextView
我试图找到@
角色的地方。文本视图可能有多个@
s,所以我想知道,我怎样才能找到第 n 个@
字符?
目前,我有:NSRange range = [textViewText rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"@"]];
。这只找到第一个@
实例。我怎样才能找到后续的?
我是一个UITextView
我试图找到@
角色的地方。文本视图可能有多个@
s,所以我想知道,我怎样才能找到第 n 个@
字符?
目前,我有:NSRange range = [textViewText rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"@"]];
。这只找到第一个@
实例。我怎样才能找到后续的?
你可以尝试做一些事情,比如根据拆分文本@"@"
,然后你知道组件在哪里被拆分,那就是@
应该出现的地方。这样你就可以轻松找到nth
@
找到第 n 个后,您想做什么@
?
这是一些勾画解决方案的示例代码。未编译或检查错误!
int targetItem = 3; // we find the 3rd item
NSString *workingStr = @"your@string@containing@stuff";
int foundAtLocation = -1;
for (int idx = 0; idx < targetItem; idx++) {
NSRange range = [workingStr rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"@"]];
if (range.location < 0) {
// not found, give up
foundAtLocation = -1;
break;
}
workingStr = [workingStr substringFromIndex:range.location];
foundAtLocation += range.location;
}
if (foundAtLocation >= 0) {
NSLog(@" I found the %d occurence of @ at character index %d", targetItem, foundAtLocation);
}
else {
NSLog(@" Not found");
}
如果我正确理解您的问题,则正则表达式可以解决您的问题。RegEx 有一些学习曲线,但它经常派上用场。
http://www.regular-expressions.info/ 通常是正则表达式的一个很好的起点
http://remarkablepixels.com/blog/2011/1/13/regular-expressions-on-ios-nsregularexpression.html iOS 正则表达式教程
http://reggyapp.com/ Reggy 是一个 osx 应用程序,您可以在其中测试您的 RegEx 实际文本。