1. 程式人生 > >如何擷取字串裡面的所有數字

如何擷取字串裡面的所有數字

在網上找了很長時間還是沒有找到,於是我再次請教了老師

    NSString *string =@“[email protected]#TG¥……&888imu67”;

    //正則表示式

NSRegularExpression *regex = [NSRegularExpressionregularExpressionWithPattern:@"\\d+"options:NSRegularExpressionCaseInsensitiveerror:nil];

//d+是正則表示式的表示方法

斜槓表示反編輯----不怎麼懂

尋找匹配的字串存入陣列

NSArray *arr = [regex

matchesInString:string options:NSMatchingReportProgressrange:NSMakeRange(0, string.length)];

   NSString * numberStr = [[NSStringalloc]init];

   NSString *subString ;

NSMutableArray *muarray =[[NSMutableArrayalloc]init]; ;

    陣列遍歷

        for (NSTextCheckingResult *resultin arr)

         {

             subString = [stringsubstringWithRange

:result.range];

把遍歷之後的結果放在可變數組裡

             [muarrayaddObject:subString];

    }

//所有元素用-分開

    numberStr = [muarraycomponentsJoinedByString:@"-"];

    NSLog(@"%@",numberStr);

這是老師寫的,說實話,前面完全不懂

講解了之後才知道,前面使用了正則表示式

什麼是正則表示式呢?

百度是這樣說的:

正則表示式是對字元串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。 我是理解為一種規則來規範這些字串