替换NSString中的[]括号?

Dru*_*erB 1 regex cocoa objective-c nsstring

我正试图找到并替换任何出现[URL]NSString.这是我的方法:

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

结果是Test [HEREHEREHERE] 123.我想这是因为[URL]这3个字符中的任意一个,所以所有3个字符将被HERE一个接一个地替换.

但是我也试过\[URL\]了同样的结果.

所以,实际上,我怎么搜索的字符[]

das*_*ght 5

您对诊断问题绝对正确:方括号是正则表达式语言中的元字符,因此它们由正则表达式引擎解释.

你需要双重转义斜杠,因为它们是Objective-C和regexp语言中的特殊字符: @"\\[URL\\]"