我正在使用MFMailComposeViewController
处理电子邮件中的附件,并且pdf的文件名基于用户对事件名称的输入,因此这可能是John Wedding,或John'的婚礼。
我想从文件名中删除任何特殊字符。
在我的代码中,我已经完成了这个:
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"'#%^&{}[]~|\/?.<," options:0 error:NULL];
NSString *string = self.occasion.title;
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
NSString *fileName = [NSString stringWithFormat:@"(%@).pdf", modifiedString];
有了这个,它会删除我的文件名中的撇号,如果它是约翰的婚礼,但如果我有哈希或其中任何其他符号,它不会删除那些文件名。
我在网上看到了一些堆栈溢出示例,但它们看起来都非常复杂;我确切地知道我想从文件名中删除哪些符号。
任何指导都会非常感激。
答案 0 :(得分:2)
NSString *textString = @"abcd334%$^%^%80)(*^ujikl";
//this is for remove the specified characters
NSCharacterSet *chs = [NSCharacterSet characterSetWithCharactersInString:@"'#%^&{}[]/~|\?.<,"];
NSString *resultString = [[textString componentsSeparatedByCharactersInSet:chs] componentsJoinedByString:@""];
//this is for get the specified characters
NSCharacterSet *chs1 = [[NSCharacterSet characterSetWithCharactersInString:@"'#%^&{}[]/~|\?.<,"] invertedSet];
NSString *resultString1 = [[textString componentsSeparatedByCharactersInSet:chs1] componentsJoinedByString:@""];
NSLog(@"tex : %@",resultString);
NSLog(@"reverse string : %@",resultString1);
out put:
text:abcd334 $ 80)(* ujikl
反向字符串:%^%^%^