2016-10-05 39 views
1

我想獲得包含百分比值的NSString的子字符串。如何從NSString獲取百分比 - 目標C

例如: 1.獲得該商品的10%優惠。 2.購買此產品可享受55折優惠。

函數應該分別返回10%和55%。

我在Java中\\d+%

使用正則表達式,我不知道該怎麼做同樣的目標C。 我已經搜查過它,但我有點迷路。

回答

2

你應該能夠使用NSRegularExpression執行你在java中使用的相同的正則表達式。這裏有一個很好的NSRegularExpression教程。

https://www.raywenderlich.com/30288/nsregularexpression-tutorial-and-cheat-sheet

我能夠使用此代碼來完成它:

NSString *string = @"10% off with this item"; 

NSError *error = nil; 
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\d+%" options:0 error:&error]; 
NSTextCheckingResult *result = [regex firstMatchInString:string options:0 range:NSMakeRange(0, [string length])]; 
NSString *substring = [string substringWithRange:result.range]; 


NSLog(@"%@", substring); // 10% 

的關鍵是在TextCheckingResult。它包含原始字符串中匹配的NSRange,因此您可以獲取匹配的子字符串。

+0

是的,我認爲一樣多,但由於某種原因我得到一個NSRangeException。 –

+0

編輯我的答案,包括代碼。 –

+0

啊,那就是了。我沒有檢查結果。謝謝喬爾。 –