正規表現を使用して、文字列をタブなどで区切ってさまざまな部分に分割しようとしています。各パーツを別の場所に保存したいので、質問は正規表現のすべての結果を正しく使用する方法ですか? 私の正規表現はこれだとしましょう:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?:\t|^)([^\"\t]+|\"(?:[^\"]|\"\")*\")?"
options:NSRegularExpressionCaseInsensitive error:&error];
NSUInteger numberOfMatches = [regex numberOfMatchesInString:string
options:0 range:NSMakeRange(0, [string length])];
ファイルを一度に 1 行ずつ読み取るため (理由によりこれを行う必要があります)、これは、各行で部分文字列を検索するために使用しているコードの一部です。
for(int i=0;i<[myFile numberOfLines];i++){
aRow = [[myFile fileRows] objectAtIndex:i];
NSArray* results = [regex matchesInString:aRow options:0 range:NSMakeRange(0, [aRow length])];
for (NSTextCheckingResult* result in results) {
NSString* resultString = [string substringWithRange:result.range];
NSLog(@"I should be storing this as a correctly separated word:\t%@",resultString);
}
}
私は何を間違っている/行方不明ですか? 印刷された結果は、表示されるべきだと思うものを示していません... (myFile / fileRows / numberOfLines / current row / aRow は正しく機能し、投稿前にチェック、ダブルチェック、トリプルチェックされているはずのものを含んでいます)
追加情報: 入力ファイル:
number letter data something
1 g dvsfg sdf
2 az "dbfghe fgh" s
4 b wdf fghfgh
3 c sdgy fdgh
5 d egfn dkjfghfgkhj
戻り値 (NSLog 単位:)
_____________number letter data something
_____________number letter
_____________numbe
_____________r da
_____________a
_____________number letter
_____________number letter
_____________number letter data s
それ以外の:
number
letter
data
something
1
g
dvsfg
...など(ポイントを取得します。各タブは、異なるNSLogメッセージの「単語」で区切られています)