0

NSString で<br>or<Br>または...を検出して、に置き換えようとしています。私は使用し、このコードを書きました:< br>\nNSRegularExpression

NSString *string = @"123 < br><br>1245; Ross <Br>Test 12<br>";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"<[* ](br|BR|bR|Br|br)>" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"\n"];


NSLog(@"%@", modifiedString);

正常に動作しますが、すべての一致を置き換えるのではなく、最初の一致のみを置き換えます。すべての一致を検出して置き換えるのを手伝ってください。ありがとう

4

2 に答える 2

2

現在、任意の量の空白を処理していません。 HTMLで改行を記述する正しい方法であるため、適切な測定のために、後の空白brも処理し、閉じスラッシュも処理する必要があります。<br />

あなたはこのようなパターンで終わるでしょう

<\s*(br|BR|bR|Br|br)\s*\/*>

または NSRegularExpression として書かれています

NSError *error = NULL;
NSRegularExpression *regex = 
  [NSRegularExpression regularExpressionWithPattern:@"<\\s*(br|BR|bR|Br|br)\\s*\\/*>" 
                                            options:0 
                                              error:&error];

編集

2 つの文字を分離することで、パターンをよりコンパクトにすることもできます。

<\s*([bB][rR])\s*\/*>
于 2013-04-04T14:53:24.377 に答える