0

我试图在我的代码中将“'”替换为“\'”,同时准备一个 json 字符串以将其传递给 .NET 服务器,但它不起作用......我的输入是“As'@k”,我需要得到“As\'@k”作为输出..我的代码如下

NSString *myString=@"As'@k";
NSString *tempString=@"\'";
myString=[myString stringByReplacingOccurrencesOfString:@"'" withString:tempString];
NSLog(@"MYSTRING: %@",myString);

没有得到输出为 "As\'@k" 。为什么?

帮我..

4

5 回答 5

4

由于\是用于转义的特殊字符,因此\\如果需要反斜杠字符,则需要使用:

NSString *tempString=@"\\'";
于 2013-06-06T11:36:58.417 回答
1
   NSString *myString=@"As'@k";
   myString=[myString stringByReplacingOccurrencesOfString:@"'" withString:@"\\'"];
   NSLog(@"MYSTRING: %@",myString);
于 2013-06-06T11:37:58.550 回答
0

您将需要使用 @"\\" 因为 \ 是转义字符,因此您需要对其进行转义,否则将被忽略

于 2013-06-06T11:37:18.260 回答
0

尝试这个:

NSString *myString=@"As'@k";
NSString *tempString=@"\\'";   //because it is escape sequence character
myString=[myString stringByReplacingOccurrencesOfString:@"'" withString:tempString];
NSLog(@"MYSTRING: %@",myString);
于 2013-06-06T11:49:14.180 回答
-2

从这里在您的项目中包含 regexkit lite

在项目中包含头文件

#import "RegexKitLite.h"

在您的代码中添加以下方法。

-(NSString*)backSlashCorrectionForString:(NSString*)originalString
{
   NSError *error = nil;
    NSRegularExpression *regex =
        [NSRegularExpression 
  regularExpressionWithPattern:@"\s" 
                       options:NSRegularExpressionCaseInsensitive error:&error];
    NSString *newString =
        [regex stringByReplacingMatchesInString:originalString
        options:0 range:NSMakeRange(0, [originalString length]) withTemplate:@"\\s"];

    //NSLog(@"New string: %@",newString);
    return newString;
}
于 2013-06-06T11:52:45.440 回答