字符串匹配目标-c

Dan*_*any 12 string iphone objective-c string-matching

我需要以这种方式匹配我的字符串:*myString* where *表示任何子字符串.我应该使用哪种方法?

你能帮我吗?

Dan*_*ark 24

如果是iPhone OS 3.2或更高版本,请使用NSRegularExpressionSearch.

NSString *regEx = [NSString stringWithFormat:@".*%@.*", yourSearchString];
NSRange range = [stringToSearch rangeOfString:regEx options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {

}
Run Code Online (Sandbox Code Playgroud)


NSG*_*God 11

您不能使用*(通配符)进行实际搜索,但通常可以执行等效的操作:

相当于搜索theTerm*:

if ([theString hasPrefix:@"theTerm"]) {
Run Code Online (Sandbox Code Playgroud)

相当于搜索*theTerm:

if ([theString hasSuffix:@"theTerm"]) {
Run Code Online (Sandbox Code Playgroud)

或者,使用NSString下面显示的类别,以下内容相当于搜索*theTerm*:

if ([theString containsString:@"theTerm"]) {
Run Code Online (Sandbox Code Playgroud)

类别只是我们添加到类中的新方法(如函数).我写了下面的内容,因为通常我会想到一个包含另一个字符串而不是处理NSRanges的字符串.

// 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
Run Code Online (Sandbox Code Playgroud)