このテキストを検討してください:
Paragraph 1: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Paragraph 2 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Paragraph 3 Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
ObjCでは、上記のテキストを読むとき、\n\n
paragraph1とparagraph2の間に2行のスペースがあります。\n\n\n\n
ただし、paragraph2とparagraph3の間には3行以上のスペースがあります。
行スペースの数を完全に無視してこれらの段落を読み取り、返すNSRegularExpressionパターンが必要でした。
NSString *pattern = @"\n(*\n)\n";
NSRegularExpression* regex1 = [[NSRegularExpression alloc] initWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:nil];
NSArray *array = [regex1 matchesInString:p options:0 range:NSMakeRange(0, [p length])];
for(NSTextCheckingResult *tcr in array){
NSTextCheckingResult *tcr = [regex1 firstMatchInString:p options:0 range:NSMakeRange(0, p.length)];
NSRange matchRange = [tcr rangeAtIndex:1];
NSString *amatch = [p substringWithRange:matchRange];
NSLog(@"Found string: %@", amatch);
}
私はNSRegularExpressionを初めて使用します。より良いチュートリアルへの参照は、すばらしいでしょう。この場合、これは上記の質問でそれを実行する正しい方法ですか。