我需要以这种方式匹配我的字符串:*myString*
其中*
意味着任何子字符串。我应该使用哪种方法?
你能帮我吗?
我需要以这种方式匹配我的字符串:*myString*
其中*
意味着任何子字符串。我应该使用哪种方法?
你能帮我吗?
如果它适用于 iPhone OS 3.2 或更高版本,请使用 NSRegularExpressionSearch。
NSString *regEx = [NSString stringWithFormat:@".*%@.*", yourSearchString];
NSRange range = [stringToSearch rangeOfString:regEx options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {
}
您不能使用 *(通配符)进行实际搜索,但通常可以执行等效的操作:
相当于搜索theTerm*
:
if ([theString hasPrefix:@"theTerm"]) {
相当于搜索*theTerm
:
if ([theString hasSuffix:@"theTerm"]) {
或者,使用NSString
下面显示的类别,以下相当于搜索*theTerm*
:
if ([theString containsString:@"theTerm"]) {
类别只是我们添加到类中的一种新方法(如函数)。我写了以下一个,因为通常认为一个字符串包含另一个字符串而不是处理NSRange
s 对我来说更有意义。
// category on NSString
@interface NSString (MDSearchAdditions)
- (BOOL)containsString:(NSString *)aString;
@end
@implementation NSString (MDSearchAdditions)
- (BOOL)containsString:(NSString *)aString {
return [self rangeOfString:aString].location != NSNotFound;
}
@end
如果您需要更高级的东西,请尝试https://github.com/dblock/objc-ngram。