この方法で文字列を一致させる必要があります。*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"]) {
カテゴリは、クラスに追加する単なる新しいメソッド(関数など)です。sを扱うよりも、ある文字列に別の文字列が含まれていると考える方が一般的に理にかなっているので、次のように書きましたNSRange
。
// 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を試してください。