2015年5月9日 星期六

[記錄][Bug?]一種用了 Objective-c 的正規表示式 苦逼狀態


以為可以用個很簡單的方式,完成字串檢查,結果程式跑進去後不打算出來,只能 debug 再開起來跑,結果 ⋯ 有種很悲劇的 fu ~

這是一種,用了正規表示式,更浪費時間的概念 ⋯

完全死魚臉 。・゜・(ノД`)・゜・。


下述的程式區段,只有 ‘被查詢的字串’長度不一樣而已,正規表示式是一樣的。
這個測試我已經完全不管回傳值正不正確了 ~



code :

    NSPredicate                   * predicate;
    
    predicate                       = [NSPredicate predicateWithFormat: @"SELF MATCHES %@", @"([^*|:\"<>?]|[ ]|\\w)+@[1-9][0-9]*+[xX]$"];

    [predicate evaluateWithObject: @"1234567890"];


output result :

Test Case '-[TechDNSStringTest testRegularExpression]' started.
Test Case '-[TechDNSStringTest testRegularExpression]' passed (0.009 seconds).


code :

    NSPredicate                   * predicate;
    
    predicate                       = [NSPredicate predicateWithFormat@"SELF MATCHES %@"@"([^*|:\"<>?]|[ ]|\\w)+@[1-9][0-9]*+[xX]$"];

    [predicate evaluateWithObject@"12345678901234567890"];


output result :

Test Case '-[TechDNSStringTest testRegularExpression]' started.

Test Case '-[TechDNSStringTest testRegularExpression]' passed (0.530 seconds).

code :

    NSPredicate                   * predicate;
    
    predicate                       = [NSPredicate predicateWithFormat@"SELF MATCHES %@"@"([^*|:\"<>?]|[ ]|\\w)+@[1-9][0-9]*+[xX]$"];

    [predicate evaluateWithObject@"1234567890123456789012345"];


output result :

Test Case '-[TechDNSStringTest testRegularExpression]' started.
Test Case '-[TechDNSStringTest testRegularExpression]' passed (14.467 seconds).

code :

    NSPredicate                   * predicate;
    
    predicate                       = [NSPredicate predicateWithFormat@"SELF MATCHES %@"@"([^*|:\"<>?]|[ ]|\\w)+@[1-9][0-9]*+[xX]$"];

    [predicate evaluateWithObject@"1234567890123456789012345678"];


output result :

Test Case '-[TechDNSStringTest testRegularExpression]' started.
Test Case '-[TechDNSStringTest testRegularExpression]' passed (121.436 seconds).



這個問題沒被修正前 ⋯ 我看,我只能來去找 c 的正規表示式了。



沒有留言:

張貼留言