1

我正在尝试查找并[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\]了相同的结果。

那么,我如何实际搜索字符[]

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 回答