1

の出現箇所を見つけて置き換えようとして[URL]いますNSString。これが私のアプローチです:

NSString *test = @"Test [URL] 123";
test = [test stringByReplacingOccurrencesOfString:@"[URL]"
                                       withString:@"HERE"
                                          options:NSRegularExpressionSearch
                                            range:NSMakeRange(0, test.length)];

この結果は ですTest [HEREHEREHERE] 123。はその3文字のいずれかを意味するため、3文字すべてが次々[URL]に置き換えられるからだと思います。HERE

しかし、私も\[URL\]同じ結果で試しました。

[では、実際に文字と を検索するにはどうすればよい]でしょうか。

4

2 に答える 2

5

問題の診断については絶対に正しいです。角かっこは正規表現言語のメタ文字であるため、正規表現エンジンによって解釈されます。

スラッシュはObjective-Cと正規表現の両方の言語で特殊文字であるため、スラッシュをダブルエスケープする必要があります。@"\\[URL\\]"

于 2012-08-21T18:24:20.747 に答える
1

代わりに試してください

test = [test stringByReplacingOccurrencesOfString:@"\\[URL\\]"
                                       withString:@"HERE"
                                          options:NSRegularExpressionSearch
                                            range:NSMakeRange(0, test.length)];

それが役に立てば幸い:)

于 2012-08-21T18:24:10.593 に答える