NSString *x=@"\"/Sagar\' and \'Samir\' ";
现在,我想删除它们之间的字符。
\“/
\'
预期输出
x = (should have) @"and \'Samir\'"
所以,Ms word在find& amp;中提供了一些选项。替换,使用通配符。 (仅举例)
可可吗?
答案 0 :(得分:4)
我假设你正在寻找一般的解决方案 - 而不是这个特定的字符串。您需要了解regular expressions。
对于Objective-C中的正则表达式支持,请查看RegexKitLite。它在NSString上提供了支持各种正则表达式匹配和替换的类别方法。
答案 1 :(得分:3)
你也可以很容易地使用NSScanner。快速阅读本文将为您提供所需的一切:
答案 2 :(得分:2)
你可以使用直接C的东西。这是一个regex library,允许您使用NSString。这个site有一个小例子。
答案 3 :(得分:0)
前面的所有答案都指向正则表达式的一般概念,因此我认为更为具体。
当然,在C,Obj-C和Cocoa Framework级别都有很多选择,但是我将介绍两个。
可以在#import <Foundation/NSScriptWhoseTest.h>
中定义的NSObject类别中找到与NSString最简单的通配符匹配,该类别提供了许多高级比较。其中有两个:
@interface NSObject (NSComparisonMethods)
// argument should be a string using simple shell wildcards (* and ?). (e.g. "Stev*" or "N?XT"). Returns NO if receiver is not an NSString.
- (BOOL)isLike:(NSString *)object;
- (BOOL)isCaseInsensitiveLike:(NSString *)object;
@end
所以
if ([@"\"/Sagar\' and \'Samir\' " isLike:@"\"/*\' and \'Samir\' "]) {
NSLog (@"Match!");
}
将记录“匹配!”
如果您要使用最强大的工具,请直接使用NSRegularExpression或通过NSString内部的支持使用NSRegularExpression。使用NSString,您可以执行以下操作:
NSMutableString *x= [[NSMutableString alloc] initWithString:@"\"/Sagar\' and \'Samir\' "];
NSLog (@"String: %@", x);
NSString *regex = @"\\\"[/a-zA-z]+\\\'";
NSString *replacement = @"";
NSLog (@"RegEx: %@ Replacement:%@", regex, replacement);
NSLog (@"RegEx: %@ Replacement:%@", regex, replacement);
NSRange allJson = NSMakeRange(0, json.length);
// Using NSString support for regular expressions
NSUInteger hits = [json replaceOccurrencesOfString:regex withString:replacement options:NSRegularExpressionSearch range:allJson];
// Using NSRegularExpression directly
NSError *error = nil;
NSRegularExpression *exp = [NSRegularExpression regularExpressionWithPattern:regex options:0 error:&error];
NSUInteger hits = [exp replaceMatchesInString:json options:0 range:allJson withTemplate:replacement];
NSLog (@"%lu hits in: %@", hits, x);
,您的输出将如下所示:
2020-12-01 13:04:49.8908 Test[420:799] String: "/Sagar' and 'Samir'
2020-12-01 13:04:51.3608 Test[420:799] RegEx: \"[/a-zA-z]+\' Replacement:
2020-12-01 13:04:53.0415 Test[42570:724799] 1 hits in: and 'Samir'