我有关于NSBackwardSearch
向后搜索字符串的知识。
我的问题,我可以通过NSRegularExpression
.
如果是,请分享您的知识?
我有关于NSBackwardSearch
向后搜索字符串的知识。
我的问题,我可以通过NSRegularExpression
.
如果是,请分享您的知识?
NSRegularExpression 没有向后搜索的概念,您需要使用捕获组并找到最后一次出现。类参考中没有提到它。
如果您有理由相信匹配将在一个非常大的字符串的后半部分,您可以先搜索该大字符串的子字符串,但我个人不会尝试以这种方式预先优化我的代码。
您可以反转您在正则表达式的结果数组上使用的枚举器:
NSString *regExPattern = @"<strong>.*?</strong>";
NSError *error = nil;
static NSRegularExpression *regex = nil;
regex = [NSRegularExpression regularExpressionWithPattern:regExPattern
options:NSRegularExpressionCaseInsensitive | NSRegularExpressionDotMatchesLineSeparators
error:&error];
NSArray *matches = [regex matchesInString:HTMLString options:0 range:NSMakeRange(0, HTMLString.length)];
for (NSTextCheckingResult *result in [matches reverseObjectEnumerator] /*HERE'S THE MAGIC*/)
{
//Do something here
}