最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS 正則表達(dá)式詳解

 更新時(shí)間:2016年08月19日 14:44:17   作者:劉梓澄  
在ios中系統(tǒng)自帶的正則表達(dá)式用法大家都很清楚吧,除了正則可以用還有NSScanner這個(gè)類,下面小編給大家簡(jiǎn)單介紹下

一、系統(tǒng)自帶正則表達(dá)式用法

除了正則可以用,還有NSScanner這個(gè)類可以達(dá)到某些相同的效果

1、創(chuàng)建正則表達(dá)式對(duì)象

NSString * reg = @"[0-9]+";//字符串正則表達(dá)式NSError *error = NULL;//錯(cuò)誤對(duì)象NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:reg options:NSRegularExpressionCaseInsensitive error:&error];//匹配reg的正則表達(dá)式對(duì)象 

2、正則表達(dá)式對(duì)象可調(diào)用的方法

/**1 * 正則表達(dá)式匹配 * * @param string 在此字符串中匹配 * @param options 一般填0 * @param range 在此范圍內(nèi)匹配 * @param block 在block內(nèi)會(huì)把匹配到的結(jié)果逐個(gè)返回NSTextCheckingResult,通過(guò)此對(duì)象的range屬性可以查看匹配到的字符串的location和length,同過(guò)subString方法可以得到被匹配字符串 */- (void)enumerateMatchesInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range usingBlock:(void (^)(NSTextCheckingResult * __nullable result, NSMatchingFlags flags, BOOL *stop))block; /**2 * 正則表達(dá)式匹配 * * @param string 在此字符串中匹配 * @param options 一般填0 * @param range 在此范圍內(nèi)匹配 * @param block 返回?cái)?shù)組,數(shù)組內(nèi)是每個(gè)匹配到的NSTextCheckingResult */- (NSArray<NSTextCheckingResult *> *)matchesInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range; /**3 * 正則表達(dá)式匹配 * * @param string 在此字符串中匹配 * @param options 一般填0 * @param range 在此范圍內(nèi)匹配 * @param block 返回匹配到的個(gè)數(shù) */- (NSUInteger)numberOfMatchesInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range; /**4 * 正則表達(dá)式匹配 * * @param string 在此字符串中匹配 * @param options 一般填0 * @param range 在此范圍內(nèi)匹配 * @param block 返回第一次匹配到的NSTextCheckingResult對(duì)象 */- (nullable NSTextCheckingResult *)firstMatchInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range; /**5 * 正則表達(dá)式匹配 * * @param string 在此字符串中匹配 * @param options 一般填0 * @param range 在此范圍內(nèi)匹配 * @param block 返回第一次匹配到的NSTextCheckingResult對(duì)象的range */- (NSRange)rangeOfFirstMatchInString:(NSString *)string options:(NSMatchingOptions)options range:(NSRange)range;3.NSString //- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask;//- (NSRange)rangeOfString:(NSString *)searchString options:(NSStringCompareOptions)mask range:(NSRange)searchRange;//匹配文本-(void)matchIn{ NSString *searchText = @"rangeOf77Str88ing"; //只能匹配一次 NSRange range = [searchText rangeOfString:@"[0-9]+" options:NSRegularExpressionSearch]; //拿到匹配結(jié)果 if (range.location != NSNotFound) { NSString * searchString= [searchText substringWithRange:range]; NSLog(@"range.location = %lu range.length = %lu", (unsigned long)range.location,(unsigned long)range.length); NSLog(@"String = %@",searchString); }else{ NSLog(@"沒(méi)有匹配"); }} 4、正則表達(dá)式示例代碼 
NSString *summaryString = [NSString stringWithFormat:@"對(duì)%@題 錯(cuò)%@題 | 任務(wù)正確率%@ | 作業(yè)平均正確率%@", questionRight, questionWrong, questionRate, taskRate];
NSMutableAttributedString *summaryAttributString = [[NSMutableAttributedString alloc] initWithString:summaryString];
// 正則匹配,匹配數(shù)字和百分號(hào)
NSString *reg = @"[0-9]+|%";
NSError *error = nil;
NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:reg options:NSRegularExpressionCaseInsensitive error:&error];
NSArray *array = [regex matchesInString:summaryString options:0 range:NSMakeRange(0, summaryString.length)];
if (array.count) {
for (int i = 0; i < array.count; i++) {
NSTextCheckingResult *result = array[i];
NSRange range = result.range;
[summaryAttributString addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHexString:@"#e71419"] range:range];
}
}
self.summaryLabel.attributedText = summaryAttributString;

5.謂詞

//驗(yàn)證是否存在-(BOOL)validateRegular:(NSString * )regular matchText:(NSString *)text;{ 
//正則表達(dá)式格式 
//NSString* regular=@"^1[0-9]{6}$"; 
//創(chuàng)建謂詞 
NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regular]; 
//匹配字符串,若能匹配返回YES,否則返回NO; 
BOOL isMatch = [numberPre evaluateWithObject:text]; 
return isMatch;}

以上所述是小編給大家介紹的iOS正則表達(dá)式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • iOS 實(shí)現(xiàn)類似QQ分組樣式的兩種方式

    iOS 實(shí)現(xiàn)類似QQ分組樣式的兩種方式

    這篇文章主要介紹了iOS 實(shí)現(xiàn)類似QQ分組樣式的兩種方式,思路很簡(jiǎn)單,對(duì)模型數(shù)據(jù)操作或則控制界面顯示,需要的朋友可以參考下
    2017-07-07
  • iOS中長(zhǎng)按調(diào)出菜單組件UIMenuController的使用實(shí)例

    iOS中長(zhǎng)按調(diào)出菜單組件UIMenuController的使用實(shí)例

    UIMenuController即是用來(lái)制作我們平時(shí)對(duì)文本長(zhǎng)按屏幕后顯示出的復(fù)制粘貼等選項(xiàng)菜單,下面就來(lái)詳細(xì)整理一下iOS中長(zhǎng)按調(diào)出菜單組件UIMenuController的使用實(shí)例:
    2016-06-06
  • iOS 純代碼寫個(gè)側(cè)滑欄功能

    iOS 純代碼寫個(gè)側(cè)滑欄功能

    下面小編就為大家分享一篇iOS 純代碼寫個(gè)側(cè)滑欄功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • iOS中修改UISearchBar圓角的小技巧分享

    iOS中修改UISearchBar圓角的小技巧分享

    UISearchBar也是iOS開(kāi)發(fā)常用控件之一,點(diǎn)進(jìn)去看看里面的屬性barStyle、text、placeholder等等。下面這篇文章主要給大家分享了iOS中修改UISearchBar圓角的小技巧,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-05-05
  • iOS10最新實(shí)現(xiàn)遠(yuǎn)程通知的開(kāi)發(fā)教程詳解

    iOS10最新實(shí)現(xiàn)遠(yuǎn)程通知的開(kāi)發(fā)教程詳解

    這篇文章主要介紹了iOS10最新遠(yuǎn)程通知開(kāi)發(fā)的實(shí)現(xiàn)過(guò)程,文章先對(duì)推送通知以及遠(yuǎn)程推送通知等進(jìn)行了基本介紹,然后通過(guò)示例代碼詳細(xì)介紹了iOS10 全新遠(yuǎn)程通知的教程,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧。
    2016-09-09
  • iOS中Swift UISearchController仿微信搜索框

    iOS中Swift UISearchController仿微信搜索框

    這篇文章主要介紹了iOS中Swift UISearchController仿微信搜索框效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • IOS開(kāi)發(fā)相冊(cè)圖片多選和刪除的功能

    IOS開(kāi)發(fā)相冊(cè)圖片多選和刪除的功能

    之前小編有和大家分享過(guò)一篇關(guān)于從相冊(cè)選取單張照片的文章,那么下面這篇文章跟大家分享下如何相冊(cè)多圖選擇和刪除,以及包括拍照功能,有需要的可以參考學(xué)習(xí),下面來(lái)一起看看吧。
    2016-09-09
  • 輕松搞定iOS本地消息推送

    輕松搞定iOS本地消息推送

    這篇文章主要幫助大家輕松搞定iOS本地消息推送,iOS中使用本地通知為你的APP添加提示用戶功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Apple?Watch?App?Lifecycle應(yīng)用開(kāi)發(fā)

    Apple?Watch?App?Lifecycle應(yīng)用開(kāi)發(fā)

    這篇文章主要為大家介紹了Apple?Watch?App?Lifecycle應(yīng)用開(kāi)發(fā)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • iOS模塊化開(kāi)發(fā)淺析

    iOS模塊化開(kāi)發(fā)淺析

    本文給大家分析了IOS在模塊發(fā)開(kāi)發(fā)時(shí)候的相關(guān)注意點(diǎn)以及簡(jiǎn)單代碼做了分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-04-04

最新評(píng)論

钦州市| 达日县| 介休市| 巴马| 新竹市| 香格里拉县| 洪江市| 闸北区| 正镶白旗| 隆德县| 呼玛县| 张家港市| 邹平县| 道孚县| 剑阁县| 卓尼县| 固安县| 龙胜| 九龙城区| 吉林省| 南涧| 仲巴县| 托里县| 富顺县| 饶平县| 灌阳县| 肃宁县| 岳池县| 和龙市| 孙吴县| 紫阳县| 玛曲县| 尚志市| 区。| 饶河县| 洪雅县| 如皋市| 会同县| 墨玉县| 铜山县| 邵武市|