如何从NSString中搜索和删除转义字符?

时间:2013-10-18 06:24:38

标签: ios objective-c cocoa-touch nsstring escaping

我正在从磁盘上的源文件中读取一行代码,该行是一个字符串,它是一个包含HTML代码的字符串:

line = @"format = @"<td width=\"%@\">";"

我需要从html字符串中删除转义字符。所以任何地方都有'\'',我需要用''替换它。我试过这个:

[line stringByReplacingOccurrencesOfString:@"\\""" withString:@""];

但它只删除了'\'字符,而不是随附的'“'。如何从此字符串中删除转义的'”'?

编辑:这个问题的关键部分是我需要找出一种方法来识别字符串声明的第一个@“和结束”的位置,并忽略/删除其他所有内容。如果有更好的方法来实现这一目标,那我就听见了。

2 个答案:

答案 0 :(得分:2)

[s stringByReplacingOccurrencesOfString:@"\\\"" withString:@""]

替换字符串有一个斜杠,必须使用另一个斜杠在文字替换字符串中进行转义,然后是引号,它也必须通过斜杠在文字中进行转义。

答案 1 :(得分:-1)

试试这个:

NSString *unfilteredString = @"!@#$%^&*()_+|abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
NSCharacterSet *notAllowedChars = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"] invertedSet];
NSString *resultString = [[unfilteredString componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""];
NSLog (@"Result: %@", resultString);