2016-10-05 10 views
1

パーセント値を含むNSStringの部分文字列を取得したいと考えています。NSStringから目的のCのパーセンテージを取得する方法

例: 1.このアイテムに10%割引を適用します。 2.これを購入すると55%オフになります。

関数はそれぞれ10%と55%を返します。私はJavaの\\d+%

で正規表現を使用しています

私はObjective 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

ああ、それはそれをしました。私は結果を確認していませんでした。ありがとうジョエル –

関連する問題