1

HTML 文字列があり、一度に 1 つの改行を許可したいと考えています。すべての「\n\n」を「\n」に置き換えようとしています。しかし、最後に二重改行になってしまいます。

文字列の内容を印刷して内容を確認することは可能ですか?出力ウィンドウに改行表示 "\n" に移動する代わりに。

while ((range = [html rangeOfString:@"\n\n"]).length) 
{
   [html replaceCharactersInRange:range withString:@"\n"];
}

編集: html はプレーン テキストに変換されています (そのため、文字列に BR タグはありません)

4

2 に答える 2

4

1つに圧縮する改行の数が不確定な場合は、NSRegularExpressionを使用できます。何かのようなもの:

NSRegularExpression *squeezeNewlines = [NSRegularExpression regularExpressionWithPattern:@"\n+" options:0 error:nil];
[squeezeNewlines replaceMatchesInString:html options:0 range:NSMakeRange(0, [html length]) withTemplate:@"\n"];

(最近のMacが手元にないため、ブラウザで記述され、テストされていません。何か問題が発生した場合はお知らせください。)

于 2011-11-21T19:10:54.723 に答える
1

代わりに使用してみませんか:

- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)opts range:(NSRange)searchRange
于 2011-11-21T18:24:50.330 に答える