次のコードを書いて、3つのドットの後に何も削除しませんでした
currentItem.summary = @"I am just testing. I am ... the second part should be eliminated";
NSError * error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(.)*(/././.)(.)*" options:0 error:&error];
if(nil != regex){
currentItem.summary = [regex stringByReplacingMatchesInString:currentItem.summary
options:0 range:NSMakeRange(0, [currentItem.summary length])
withTemplate:@"$1"];
}
ただし、私の入力と出力は同じです。正しい出力は、「I am just testing. I am」である必要があります。
文字列に対して実行する他の正規表現のデータベースがあるため、正規表現を使用してこれを実行しようとしていました。プレーンテキストの検索や置換ほどパフォーマンスが良くないことはわかっていますが、関連する文字列は短いです。また、「\」を使用して正規表現のドットをエスケープしようとしましたが、警告が表示されました。
同様のトピックに関する別の質問がありますが、一致文字列は目的 c 用ではありません。