標籤:沒有 regex first 移除 遇到 ace object 多個 regular
1、眾所周知,Regex如果利用得當的話,其實用性還是相當強大的 ,基本上目前所有的預研都是支援Regex的 ,無非是對文法的支援不同。
2、在實際應用中 ,我們可能需要去截取遇到第一個特殊字元之前的文字 ,此時就需要用到Regex ,畢竟特殊符號那麼多 ,如果真有人用多個if去操作的話,只能說重新整理了我的認知!
話不多說,附上代碼
- (NSString *)getNewSubStoreNameByRegularExpression:(NSString *)storeName{ NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[-()()—”“$&@%^*?+?=|{}?【】???¥!!.<>/:;:;、,,。]" options:NSRegularExpressionCaseInsensitive | NSRegularExpressionDotMatchesLineSeparators | NSRegularExpressionAnchorsMatchLines | NSRegularExpressionAllowCommentsAndWhitespace error:&error]; NSString *result = [regex stringByReplacingMatchesInString:storeName options:0 range:NSMakeRange(0, [storeName length]) withTemplate:@"pk"]; return [result componentsSeparatedByString:@"pk"].firstObject;}
上述代碼的意思是先將特殊字元換成pk,然後以pk為關鍵字進行分割,並取第一個元素。
細心的小夥伴會發現特殊字元中並沒有包含“#”字元,“#” 作為字元包含在Regex中,將導致整個Regex驗證失敗,此結論還是我通過二分法找出來的。故將“#”從運算式中移除
iOS Regex去除特殊符號