2013-07-12 29 views
1

我對NSBackwardSearch瞭解如何在反向搜索字符串。NSRegularExpression在向後的方向?

我的問題,我可以通過NSRegularExpression做相同的反向搜索。

如果是這樣,請分享您的知識?

+0

你想向後找到最後一場比賽或讀取的字符串? –

+0

我的目標是找到最後一場比賽。但是如果它是一個很長的字符串,它不是最優的查找所有的事件,然後通過發生[occurrence.length-1]得到結果。 – Kirubachari

回答

1

沒有使用NSRegularExpression向後搜索的概念,您需要使用捕獲組並查找最後一次出現。它在class reference中沒有提及。

如果您有理由相信匹配會出現在一個非常大的字符串的後半部分,那麼您可以首先搜索該大字符串的子字符串,但是我個人不會嘗試以這種方式預先優化我的代碼。

+0

感謝您的澄清 – Kirubachari

1

你可以扭轉你的正則表達式的結果陣列上使用您的枚舉:搜索時

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 
} 
相關問題