正規表現を使用してNSString
を検索/列挙するにはどうすればよいですか?
/(NS|UI)+(\w+)/g
などの正規表現。
NSRegularExpression
クラスを使用する必要があります。
ドキュメントに触発された例:
NSString *yourString = @"";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:@"(NS|UI)+(\\w+)"
options:NSRegularExpressionCaseInsensitive
error:&error];
[regex enumerateMatchesInString:yourString options:0 range:NSMakeRange(0, [yourString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){
// your code to handle matches here
}];
文字列内のパターンに一致させたいだけの場合は、NSString
で正規表現をテストする簡単な方法があります。
_NSString *string = @"Telecommunication";
if ([string rangeOfString:@"comm" options:NSRegularExpressionSearch].location != NSNotFound)
NSLog(@"Got it");
else
NSLog(@"No luck");
_
注意してください、多くの場合、あなたは...
_if ([string rangeOfString:@"cOMm"
options:NSRegularExpressionSearch|NSCaseInsensitiveSearch].location
!= NSNotFound)
NSLog(@"yes match");
_
In Swiftこのようなコードを書くことができます...
_ let string = "Telecommunication"
if string.rangeOfString("cOMm", options: (NSStringCompareOptions.RegularExpressionSearch | NSStringCompareOptions.CaseInsensitiveSearch)) != nil {
print("Got it")
} else {
print("No luck")
}
_
_ let string = "Telecommunication"
if string.range(of: "cOMm", options: [.regularExpression, caseInsensitive]) != nil {
print("Got it")
} else {
print("No luck")
}
_
Swift 2のrangeOfString(_:,options:)
およびSwift 4の range(of:options:)
return _Range<String.Index>?
_検索が失敗した場合にnilを返します