iOS正則表達式匹配漢字

前提是朋友有個需求幫忙,集成百度地圖得出了公交路線方案(字符串),但只需要路線方案的公交路數。第一時間就考慮了字符串切割,后來發現賊雞兒麻煩。最后想到了js正則表達式切割字符串,最后會得出指定切割字符串的數組。上網搜了下,果然iOS也有類似功能的API:NSRegularExpression(NSPredicate也嘗試過,自己覺得不太合適),這個iOS自己搞的一套用于處理正則表達式的類,還是不錯的。下面是例子:

NSString*routeStr =@"步行375米,到達溫德橋站,乘坐1路,再做K1路,經過13站,到達吉林站西廣場站,步行355米,到達終點站,步行966米,到達農林街站,乘坐45路,經過15站,到達吉林站西廣場站,,再做123abc路步行358米,到達終點站,步行421米,到達市一中站,乘坐7路,經過24站,到達吉林站西廣場站,步行508米,到達終點站,步行231米,到達市一中站,乘坐7路,經過2站,到達農林街站,再做11F22路,步行125米,到達農林街站,乘坐45路,經過15站,到達吉林站西廣場站,步行358米,到達終點站,步行419米,到達市一中東門站,乘坐57路,經過9站,到達德勝門站,步行1米,到達德勝門站,乘坐8路,經過6站,到達吉林站西廣場站,步行368米,到達終點站";

NSString*regex =@"\[0-9a-zA-Z]+\u8def|\u7ec8\u70b9\u7ad9";? //Unicode編碼:\u8def:路? ? \u7ec8\u70b9\u7ad9:終點站

NSRegularExpression*predicate = [NSRegularExpressionregularExpressionWithPattern:regexoptions:0error:nil];

__blockNSMutableArray*fields = [[NSMutableArrayalloc]init];

[predicateenumerateMatchesInString:routeStroptions:0range:NSMakeRange(0, routeStr.length)

usingBlock:^(NSTextCheckingResult*match,NSMatchingFlagsflags,BOOL*stop){

[fieldsinsertObject:[routeStrsubstringWithRange:match.range]atIndex:fields.count];

}];

NSLog(@"指定路徑數組:%@",fields);? //指定路徑數組:(1路,K1路,終點站,45路,123abc路,終點站,7路,終點站,7路,11F22路,45路,終點站,57路,8路,終點站)

最后,說明一點,其實不是我不想說明其中具體內容,因為現在是個菜雞,還有工作,其中函數和具體東西,如果后期再遇到,有時間深入了解,會不斷更新的(簡書現在也懶得只寫純文字,哈哈)。

這里主要給看到 的人提供了一個思路:NSRegularExpression + 正則(NSRegularExpression給我提供給了可實現API,正則自己看去,我也是琢磨著寫,NSRegularExpression不需要加^$這種正則的標識,算是固定格式)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、官網關于自動釋放池的說明截取 NSAutoreleasePool NSAutoreleasePool 類被用來...
    Mitchell閱讀 14,026評論 5 40
  • 小時候,我是很排斥洗澡的。用現在比較流行的詞來形容,那就是“用戶體驗”欠佳。因為我們這些工薪階級的子女,大部分個人...
    劉峰閱讀 532評論 0 1
  • 我奶奶今年 八十幾歲了 八十幾呢 我記不清了 問她 她也說不清 前兩天你問她 她可能還很確定 過幾天再問 說不定就...
    翮笙閱讀 355評論 0 0