我正在尝试查找并替换[URL]
中NSString
的任何匹配项。这是我的方法:
NSString *test = @"Test [URL] 123";
test = [test stringByReplacingOccurrencesOfString:@"[URL]"
withString:@"HERE"
options:NSRegularExpressionSearch
range:NSMakeRange(0, test.length)];
结果是Test [HEREHEREHERE] 123
。
我想这是因为[URL]
表示这3个字符中的任何一个,所以所有3个字符将一个接一个地替换为HERE
。
但我也尝试\[URL\]
同样的结果。
那么,我如何实际搜索字符[
和]
?
答案 0 :(得分:5)
你对诊断问题绝对正确:方括号是正则表达式语言中的元字符,因此它们会被正则表达式引擎解释。
你需要双重转义斜杠,因为它们是Objective-C和regexp语言中的特殊字符:@"\\[URL\\]"
答案 1 :(得分:1)
尝试改为
test = [test stringByReplacingOccurrencesOfString:@"\\[URL\\]"
withString:@"HERE"
options:NSRegularExpressionSearch
range:NSMakeRange(0, test.length)];
希望它有所帮助:)