我的iPhone應用程序使用正則表達式(與NSRegularExpression)來執行計算大量的字符串(在1000年)。這當然需要很多時間。什麼是加速正則表達式的一些策略?我研究過使用塊,但我認爲它不會有什麼好處 - 它們似乎主要表示lambda功能(即相當於lisp),並在具有多個內核的Mac上使用。顯然,目前的iPhone沒有多核心。如何加快與NSRegularExpression iPhone正則表達式?
這裏是我的代碼:
NSString *replaceRegexPattern = @"([\\(|\\[].*?[\\)|\\]])|(^to)";
NSRegularExpression *replaceRegex = [[NSRegularExpression regularExpressionWithPattern:replaceRegexPattern
options:NSRegularExpressionCaseInsensitive
error:nil] retain];
NSArray *myArray = <some data>;
NSString *myString, *compareValue;
for (i = 0; i < [myArray count]; i++) {
myString = [myArray objectAtIndex:i];
compareValue = [replaceRegex stringByReplacingMatchesInString:myString
options:0
range:NSMakeRange(0, [myString length])
withTemplate:@""];
// do things with compareValue
}
要回答以下問題,我在此代碼的目標是消除它要麼是用括號括起來在我的字符串任何文本,或用「到」開始。下面是一些例子:
- 你好(掛機) - >你好
- 你好(掛機[N]) - >你好
- 爲了說 - >說
- 爲了說(PF) - >說
你表達刪除「爲」,「TO」,「來」和「如果你只關心一個案例,你可以通過刪除選項'NSRegularExpressionCaseInsensitive'來加速它。 – 2015-10-13 06:02:54