我得到的文字如下: -
1. e4 e5 2. Nf3 Nc6 3. Bb5 {This opening is called the Ruy Lopez.} 3... a6
4. Ba4 Nf6 5. O-O Be7 6. Re1 b5 7. Bb3 d6 8. c3 O-O 9. h3 Nb8 10. d4 Nbd7
11. c4 c6 12. cxb5 axb5 13. Nc3 Bb7 14. Bg5 b4 15. Nb1 h6 16. Bh4 c5
我需要删除{}内的注释}但在此之前我需要将其与移动的索引号一起复制,如3或Bb5。
为了删除我正在使用的字符串
- (NSString *)stringFilter:(NSString *)targetString {
NSScanner *theScanner;
NSString *text = nil;
theScanner = [NSScanner scannerWithString: targetString];
while ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString:@"{" intoString:NULL] ;
[theScanner scanUpToString:@"}" intoString:&text] ;
targetString = [targetString stringByReplacingOccurrencesOfString:
[NSString stringWithFormat:@"%@}", text]
withString:@""];
}
return targetString;
}
我正在寻找如何复制该字符串并将其存储在字典或数组中谢谢。
答案 0 :(得分:0)
我使用以下类别方法来获取'('&')'之间的内容。你可以很容易地适应它......
编辑:完整性的完整类别
// NSString+Parenthesis.h
#import <Foundation/Foundation.h>
@interface NSString (Parenthesis)
-(NSString*)contentsInParenthesis;
@end
// NSString+Parenthesis.m
#import "NSString+Parenthesis.h"
@implementation NSString (Parenthesis)
-(NSString*)contentsInParenthesis {
NSString *subString = nil;
NSRange range1 = [self rangeOfString:@"("];
NSRange range2 = [self rangeOfString:@")"];
if ((range1.length == 1) && (range2.length == 1) && (range2.location > range1.location)) {
NSRange range3;
range3.location = range1.location+1;
range3.length = (range2.location - range1.location)-1;
subString = [self substringWithRange:range3];
}
return subString;
}
@end