我是UITextView
,我正在尝试找到@
字符。文本视图可能有多个@
,所以我想知道,如何找到第n个@
字符?
目前,我有:NSRange range = [textViewText rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"@"]];
。这只找到第一个@
实例。我怎样才能找到后续的?
答案 0 :(得分:0)
您可以尝试执行类似于基于@"@"
拆分文本的操作,然后您知道组件的拆分位置,@
应该出现的位置。这样您就可以轻松找到nth
@
答案 1 :(得分:-1)
如果我理解你的问题,正则表达式可以解决你的问题。 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实际文本。
答案 2 :(得分:-1)
找到第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");
}