Я работаю над алгоритмом сопоставления с образцом строки.Я использую NSRegularExpression для поиска совпадений.Например: я должен найти все слова, начинающиеся с '#' в строке. В настоящее время я использую следующую функцию регулярного выражения:
static NSRegularExpression *_searchTagRegularExpression;
static inline NSRegularExpression * SearchTagRegularExpression()
{
if (!_searchTagRegularExpression)
{
_searchTagRegularExpression = [[NSRegularExpression alloc]
initWithPattern:@"(?<!\\w)#([\\w\\._-]+)?"
options:NSRegularExpressionCaseInsensitive
error:nil];
}
return _searchTagRegularExpression;
}
и использую ее следующим образом:
NSString *searchString = @"Hi, #Hash1 #Hash2 #Hash3...";
NSRange searchStringRange = NSMakeRange(0, searchString.length);
NSRegularExpression *regexp = SearchTagRegularExpression();
[regexp enumerateMatchesInString:searchString
options:0
range:searchStringRange
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop)
{
// comes here for every match with range ( in this case thrice )
}];
Это работает правильно.Но я просто хочу знать, если это лучший способ.предположить, есть ли лучшая альтернатива ...