亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

正則表達式在IOS中的應用及IOS中三種正則表達式的使用與比較

2020-03-22 16:26:29
字體:
供稿:網(wǎng)友
一、什么是html' target='_blank'>正則表達式 正則表達式,又稱正規(guī)表示法,是對字符串操作的一種邏輯公式。正則表達式可以檢測給定的字符串是否符合我們定義的邏輯,也可以從字符串中獲取我們想要的特定部分。它可以迅速地用極簡單的方式達到字符串的復雜控制。二、正則表達式的語法 看一個過濾純數(shù)字的例子- (BOOL)validateNumber:(NSString *) textString
{ NSString* number=@"^[0-9]+$"; NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",number]; return [numberPre evaluateWithObject:textString];}其中下述語句就是一個正則表達式@"^[0-9]+$" 它代表了字符串中只能包含 =1個0-9的數(shù)字,語法是不是有一些怪異? 下面我們先撇開iOS中的正則表達式的語法,用通俗的正則表達式語法來為介紹一下。(iOS語法與通俗的正則表達式語法相同,不同在于對轉(zhuǎn)義字符的處理上(語言類的都相同)) 語法: 首先,特殊符號'^'和'$'。他們的作用是分別指出一個字符串的開始和結(jié)束。eg: “^one”:表示所有以”one”開始的字符串(”one cat”,”one123″,·····); 類似于:- (BOOL)hasPrefix:(NSString *)aString; “a dog$”:表示所以以”a dog”結(jié)尾的字符串(”it is a dog”,·····); 類似于:- (BOOL)hasSuffix:(NSString *)aString; “^apple$”:表示開始和結(jié)尾都是”apple”的字符串,這個是唯一的~; “banana”:表示任何包含”banana”的字符串。 類似于 iOS8的新方法- (BOOL)containsString:(NSString *)aString,搜索子串用的。 ‘*','+'和' '這三個符號,表示一個或N個字符重復出現(xiàn)的次數(shù)。它們分別表示“沒有或更多”([0,+∞]取整),“一次或更多”([1,+∞]取整),“沒有或一次”([0,1]取整)。下面是幾個例子:
“ab*”:表示一個字符串有一個a后面跟著零個或若干個b(”a”, “ab”, “abbb”,……); “ab+”:表示一個字符串有一個a后面跟著至少一個b或者更多( ”ab”, “abbb”,……); “ab ”:表示一個字符串有一個a后面跟著零個或者一個b( ”a”, “ab”); “a b+$”:表示在字符串的末尾有零個或一個a跟著一個或幾個b( ”b”, “ab”,”bb”,”abb”,……)。 可以用大括號括起來({}),表示一個重復的具體范圍。例如 “ab{4}”:表示一個字符串有一個a跟著4個b(”abbbb”); “ab{1,}”:表示一個字符串有一個a跟著至少1個b(”ab”,”abb”,”abbb”,……); “ab{3,4}”:表示一個字符串有一個a跟著3到4個b(”abbb”,”abbbb”)。 那么,“*”可以用{0,}表示,“+”可以用{1,}表示,“ ”可以用{0,1}表示 注意:可以沒有下限,但是不能沒有上限!例如“ab{,5}”是錯誤的寫法 “ | ”表示“或”操作: “a|b”:表示一個字符串里有”a”或者”b”; “(a|bcd)ef”:表示”aef”或”bcdef”; “(a|b)*c”:表示一串”a”"b”混合的字符串后面跟一個”c”; 方括號”[ ]“表示在括號內(nèi)的眾多字符中,選擇1-N個括號內(nèi)的符合語法的字符作為結(jié)果,例如 “[ab]“:表示一個字符串有一個”a”或”b”(相當于”a|b”); “[a-d]“:表示一個字符串包含小寫的'a'到'd'中的一個(相當于”a|b|c|d”或者”[abcd]“); “^[a-zA-Z]“:表示一個以字母開頭的字符串; “[0-9]a”:表示a前有一位的數(shù)字; “[a-zA-Z0-9]$”:表示一個字符串以一個字母或數(shù)字結(jié)束。 “.”匹配除“/r/n”之外的任何單個字符: “a.[a-z]“:表示一個字符串有一個”a”后面跟著一個任意字符和一個小寫字母; “^.{5}$”:表示任意1個長度為5的字符串; “/num” 其中num是一個正整數(shù)。表示”/num”之前的字符出現(xiàn)相同的個數(shù),例如 “(.)/1″:表示兩個連續(xù)的相同字符。 “10/{1,2/}” : 表示數(shù)字1后面跟著1或者2個0 (“10″,”100″)。 ” 0/{3,/} ” 表示數(shù)字為至少3個連續(xù)的0 (“000”,“0000”,······)。 在方括號里用'^'表示不希望出現(xiàn)的字符,'^'應在方括號里的第一位。 “@[^a-zA-Z]4@”表示兩個”@”中不應該出現(xiàn)字母)。 常用的還有: “ /d ”匹配一個數(shù)字字符。等價于[0-9]。 “ /D”匹配一個非數(shù)字字符。等價于[^0-9]。 “ /w ”匹配包括下劃線的任何單詞字符。等價于“[A-Za-z0-9_]”。 “ /W ”匹配任何非單詞字符。等價于“[^A-Za-z0-9_]”。 iOS中書寫正則表達式,碰到轉(zhuǎn)義字符,多加一個“/”,例如: 全數(shù)字字符:@”^//d/+$” 三、iOS中正則表達式 1.正則表達式與NSPredicate連用,eg:- (BOOL)validateNumber:(NSString *) textString NSString* number=@"^[0-9]+$"; NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",number]; return [numberPre evaluateWithObject:textString];} 2.NSString方法 - (NSRange)rangeOfString:(NSString *)aString options:(NSStringCompareOptions)mask;NSString *searchText = @"rangeOfString";NSRange range = [searchText rangeOfString:@"^[0-9]+$" options:NSRegularExpressionSearch];if (range.location != NSNotFound) { NSLog(@"range :%@", [searchText substringWithRange:range]);} 3.正則表達式類(NSRegularExpression)NSString *searchText = @"you want to match"; NSError *error = NULL;NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]+$" options:NSRegularExpressionCaseInsensitive error: NSTextCheckingResult *result = [regex firstMatchInString:searchText options:0 range:NSMakeRange(0, [searchText length])];if (result) { NSLog(@"%@", [searchText substringWithRange:result.range]);}四、常用的正則表達式 以下紅色字符串是常用的正則表達式(以下正則表達式來自百度百科) 1.驗證用戶名和密碼:”^[a-zA-Z]/w{5,15}$” 2.驗證電話號碼:(”^(//d{3,4}-)//d{7,8}$”) eg:021-68686868 0511-6868686; 3.驗證手機號碼:”^1[3|4|5|7|8][0-9]//d{8}$”; 4.驗證身份證號(15位或18位數(shù)字):”//d{14}[[0-9],0-9xX]”; 5.驗證Email地址:(“^//w+([-+.]//w+)*@//w+([-.]//w+)*/.//w+([-.]//w+)*$”); 6.只能輸入由數(shù)字和26個英文字母組成的字符串:(“^[A-Za-z0-9]+$”) ; 7.整數(shù)或者小數(shù):^[0-9]+([.]{0,1}[0-9]+){0,1}$ 8.只能輸入數(shù)字:”^[0-9]*$”。 9.只能輸入n位的數(shù)字:”^//d{n}$”。 10.只能輸入至少n位的數(shù)字:”^//d{n,}$”。 11.只能輸入m~n位的數(shù)字:”^//d{m,n}$”。 12.只能輸入零和非零開頭的數(shù)字:”^(0|[1-9][0-9]*)$”。 13.只能輸入有兩位小數(shù)的正實數(shù):”^[0-9]+(.[0-9]{2}) $”。 14.只能輸入有1~3位小數(shù)的正實數(shù):”^[0-9]+(/.[0-9]{1,3}) $”。 15.只能輸入非零的正整數(shù):”^/+ [1-9][0-9]*$”。 16.只能輸入非零的負整數(shù):”^/-[1-9][]0-9″*$。 17.只能輸入長度為3的字符:”^.{3}$”。 18.只能輸入由26個英文字母組成的字符串:”^[A-Za-z]+$”。 19.只能輸入由26個大寫英文字母組成的字符串:”^[A-Z]+$”。 20.只能輸入由26個小寫英文字母組成的字符串:”^[a-z]+$”。 21.驗證是否含有^% = $/”等字符:”[^% = $/x22]+”。 22.只能輸入漢字:”^[/u4e00-/u9fa5]{0,}$”。 23.驗證URL:”^http://([//w-]+/.)+[//w-]+(/[//w-./ %&=]*) $”。 24.驗證一年的12個月:”^(0 [1-9]|1[0-2])$”正確格式為:”01″~”09″和”10″~”12″。 25.驗證一個月的31天:”^((0 [1-9])|((1|2)[0-9])|30|31)$”正確格式為;”01″~”09″、”10″~”29″和“30”~“31”。 26.獲取日期正則表達式://d{4}[年|/-|/.]//d{/1-/12}[月|/-|/.]//d{/1-/31}日 評注:可用來匹配大多數(shù)年月日信息。 27.匹配雙字節(jié)字符(包括漢字在內(nèi)):[^/x00-/xff] 評注:可以用來計算字符串的長度(一個雙字節(jié)字符長度計2,ASCII字符計1) 28.匹配空白行的正則表達式:/n/s*/r 評注:可以用來刪除空白行 29.匹配HTML標記的正則表達式: (/S* )[^ ]* .* / | .* / 評注:網(wǎng)上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對于復雜的嵌套標記依舊無能為力 30.匹配首尾空白字符的正則表達式:^/s*|/s*$ 評注:可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等),非常有用的表達式 31.匹配網(wǎng)址URL的正則表達式:[a-zA-z]+://[^/s]* 評注:網(wǎng)上流傳的版本功能很有限,上面這個基本可以滿足需求 32.匹配帳號是否合法(字母開頭,允許5-16字節(jié),允許字母數(shù)字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 評注:表單驗證時很實用 33.匹配騰訊QQ號:[1-9][0-9]/{4,/} 評注:騰訊QQ號從10 000 開始 34.匹配中國郵政編碼:[1-9]//d{5}( !/d) 評注:中國郵政編碼為6位數(shù)字 35.匹配ip地址:((2[0-4]//d|25[0-5]|[01] //d//d )/.){3}(2[0-4]//d|25[0-5]|[01] //d//d )。iOS中3種正則表達式的使用與比較之前我在博文中介紹過iOS中自帶正則表達式的使用( 傳送門),后來我發(fā)現(xiàn)其實iOS中有三種方式來實現(xiàn)正則表達式的匹配?,F(xiàn)在將他們都記錄在這里:
1.利用NSPredicate(謂詞)匹配
例如匹配有效郵箱:NSString *email = @“nijino_saki@163.com”; NSString *regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+//.[A-Za-z]{2,4}"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; BOOL isValid = [predicate evaluateWithObject:email];謂詞匹配比較靈活,但是需要有謂詞的相關(guān)知識。2.利用rangeOfString:option:直接查找 NSString *searchText = @"http:// Do any additional setup after loading the view, typically from a nib."; NSRange range = [searchText rangeOfString:@"( :[^,])*//." options:NSRegularExpressionSearch]; if (range.location != NSNotFound) { NSLog(@"%@", [searchText substringWithRange:range]); }options中設定NSRegularExpressionSearch就是表示利用正則表達式匹配,會返回第一個匹配結(jié)果的位置。3.使用正則表達式類 NSString *searchText = @"http:// Do any additional setup after loading the view, typically from a nib."; NSError *error = NULL;NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"( :[^,])*//." options:NSRegularExpressionCaseInsensitive error: NSTextCheckingResult *result = [regex firstMatchInString:searchText options:0 range:NSMakeRange(0, [searchText length])];if (result) { NSLog(@"%@/n", [searchText substringWithRange:result.range]);}使用系統(tǒng)的正則表達式類(NSRegularExpression)會返回匹配的多個結(jié)果。以上內(nèi)容就是本文的全部內(nèi)容,希望大家喜歡。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
天堂社区日本电影超碰| 狠狠鲁男人天堂| 免费成年网站| 亚洲伦理中文字幕| 香蕉久久夜色精品国产更新时间| 福利一区二区在线观看| 成人免费高清在线观看| 国产在线观看精品一区二区三区| 综合久久五月天| 一级网站在线观看| 丁香婷婷综合激情| 国产麻豆精品视频一区二区| 久久久久99精品| 精品视频97| 放荡的美妇在线播放| 亚洲人成电影院色| 精品视频一二三区| 懂色av一区二区| 精品一区二区三区在线播放视频| 欧美性猛交xxxxx少妇| 国产视频二区三区| 亚洲一区二区三区乱码aⅴ蜜桃女| 福利在线视频导航| 欧美xxxxbbbb在线播放| 黄色成人在线网站| 日韩小视频网站| 精品久久综合| 精品国产一区二区三区无码| 国产中文欧美精品| 91丨porny丨探花| 在线免费一区三区| 国产成人精品亚洲日本在线观看| 亚洲v精品v日韩v欧美v专区| 一本大道熟女人妻中文字幕在线| 欧美精品久久久久久久久久丰满| 国产精品久久久久久免费免熟| 亚洲影院一区二区三区| 午夜精品中文字幕| 国产99re66在线视频| 视频一区 中文字幕| 国产精品无av码在线观看| 97cao在线| 在线国产精品视频| 久久精品国内一区二区三区| 在线视频免费观看一区| 欧美乱做爰xxxⅹ久久久| 精品一二线国产| 在线观看91av| 四虎影院一区二区三区| 中文字幕高清在线免费播放| 亚洲一级av毛片| xxxxxxxxx欧美| 老熟女高潮一区二区三区| 久久91亚洲精品中文字幕奶水| 成人看片免费| 亚洲第一区在线观看| av网站在线免费看| 狠狠色噜噜狠狠狠狠97| 亚洲一区二区三区网站| 蜜桃无码一区二区三区| 国产精选在线视频拍拍拍| 欧美电影在线观看免费| 国产美女明星三级做爰| 亚洲成av人片一区二区梦乃| 蜜桃精品久久久久久久免费影院| 精品国产欧美一区二区三区成人| 九色国产蝌蚪视频| 麻豆精品一区二区av白丝在线| 91大神福利视频| 一区二区在线中文字幕电影视频| 日韩中文有码在线视频| 亚洲欧洲自拍| 9i看片成人免费看片| 亚洲精品国产a久久久久久| 国产精品一级片在线观看| porn亚洲| 5月丁香婷婷综合| 激情五月婷婷小说| 青草视频在线观看免费| 成人免费毛片aaaaa**| 国产精品乱人伦| 色综合电影网| 欧美成人性福生活免费看| 国产精品对白刺激| 日本资源在线| 国产三级三级三级精品8ⅰ区| 久草在线资源站手机版| 欧美日韩久久久一区| 亚洲欧美成人综合| 午夜国产在线| 996这里只有精品| 在线播放/欧美激情| 日b视频在线观看| 欧美又粗又大又爽| 欧美性猛交xxxx偷拍洗澡| 国产精品白丝jk黑袜喷水| 91丝袜高跟美女视频| 国产精品22p| 亚洲欧美一区二区三区在线| 91在线观看免费高清完整版在线观看| 亚洲色图日韩精品| www.亚洲激情.com| 99在线热播精品免费| 中文字幕av导航| 国产精品麻豆欧美日韩ww| 小小影院久久| 欧美一二区在线观看| 伊人成人网在线看| 一本色道久久综合一区| gogo在线观看| 日韩视频免费观看高清完整版在线观看| 久热久精久品这里在线观看| 精品国产一区二区三| 国产色在线视频| 96久久久久久| 播金莲一级淫片aaaaaaa| 精品一区二区三区影院在线午夜| 亚洲在线视频一区二区| 天堂av免费观看| 天天爽天天爽夜夜爽| 中文字幕一区二区不卡| 污片在线免费看| 精品久久久久中文慕人妻| 岛国精品在线播放| 欧美精品七区| 天堂91在线| 在线观看黄色国产| 日韩成人精品在线观看| 亚洲精品www久久久久久| 一区二区免费不卡在线| 亚洲欧美在线成人| 自拍欧美日韩| 精品蜜桃传媒| 97精品视频在线观看自产线路二| 97视频com| 日韩精品无码一区二区三区免费| 玖玖综合伊人| 欧美一区二区三区成人| 国产精品免费丝袜| 国产自产在线视频一区| 国产videos久久| 免费看黄色一级视频| 欧美精品久久一区| 中文字幕欧美日韩精品| 日本a级片在线观看| av电影免费在线观看| 国产精品老女人精品视频| 水蜜桃在线免费观看| 日本一区二区综合亚洲| 欧美美女操人视频| 国产一区二区三区美女| 在线观看av影片| 欧美残忍xxxx极端| 日韩中出av| 成人一区二区三区中文字幕| 欧美两根一起进3p做受视频| 在线观看wwwxxxx| av在线电影院| 奇米色一区二区三区四区| 欧美一级免费播放| 久久精品视频导航| 久久伊人精品天天| 国产一级影片| 欧美日韩一区二区精品| 成人av二区| 嫩草影院一二三| 国产一区二区三区四区五区加勒比| 国产伦精品一区二区三区视频免费| 一区二区三区久久精品| 牛牛精品成人免费视频| 蜜桃色一区二区三区| 久热这里有精品| www.久久国产| 色免费在线观看| 欧美日韩18| 欧美激情一区二区三区在线| 91成人天堂久久成人| 免费毛片在线看片免费丝瓜视频| 欧美日韩国产一中文字不卡| 日韩av成人高清| 欧美r片在线| 欧美美女一区二区在线观看| 日本色七七影院| 亚洲天堂日韩av| 日本精品中文字幕| 欧美激情图片区| 大j8黑人w巨大888a片| 中文字幕成人在线| 大香一本蕉伊线亚洲网| 蜜桃传媒一区二区亚洲| 日韩人妻无码一区二区三区99| 图片婷婷一区| 丰满人妻一区二区| 免费在线观看的av网站| 91cn在线观看| 欧美男人天堂网| 99国产精品免费网站| 欧美日韩一二三四区| 亚洲欧美成人影院| 日本aⅴ精品一区二区三区| 日本理论中文字幕| 精品日韩av一区二区| 91精品国产乱| 亚洲午夜精品久久久久久性色| 高清久久久久久| 亚洲激情一区二区三区| 91精品国产91久久久久久最新| 亚洲影院久久精品| 国产成人丝袜美腿| 成人av电影免费观看| 国产97免费视| 狠狠做六月爱婷婷综合aⅴ| 久久综合伊人77777麻豆最新章节| 欧美三级一级片| 国产精品jvid在线观看蜜臀| 西西444www无码大胆| 182在线播放| 先锋影音av中文字幕| 欧美日韩一区二区在线观看视频| 久久一夜天堂av一区二区三区| 国产精品日韩专区| 一本久道综合色婷婷五月| 久久久久久久久久一区二区| 久久综合五月| 91tv亚洲精品香蕉国产一区7ujn| 亚洲欧美资源在线| 久久久久人妻一区精品色| 92精品国产成人观看免费| 欧美高清视频一区二区三区在线观看| 在线观看国产视频一二三| 亚洲精品水蜜桃| 亚洲一级特黄毛片| 久久久精品黄色| 国产欧美一区二区三区小说| 九九久久久2| 8av国产精品爽爽ⅴa在线观看| 日韩精品国内| 视频免费在线观看| 亚洲乱码国产乱码精品天美传媒| 在线电影院国产精品| 国产乱码在线观看| 欧美激情中文网| 国产风韵犹存在线视精品| 日本中文在线一区| www.五月激情| 风间由美中文字幕在线看视频国产欧美| 亚洲夜晚福利在线观看| 中文一区一区三区免费在线观看| 福利片一区二区三区| 尤物yw午夜国产精品视频| 午夜精品久久久99热福利| 青草视频在线观看免费| 国产一区视频网站| 性猛交富婆╳xxx乱大交一| 亚洲国产一区二区三区在线播| 亚洲精品毛片| 91成人在线观看喷潮| 综合综合综合综合综合网| 九九热爱视频精品视频高清| 久久精品男女| 手机免费看av网站| 欧美天堂一区| 亚洲男男av| 国产精品久久久久久久久粉嫩av| 中文字幕导航| 4hu四虎永久在线观看| 久久视频在线直播| 午夜久久久精品| 日韩国产精品亚洲а∨天堂免| 国产精品久久色| 依依成人综合网| 一区二区三区在线观看动漫| 在线免费三级电影网站| 91天天综合| 亚洲成人黄色片| 欧美日韩一区二区三区四区五区六区| 丰满少妇一区| 欧美成人一区二区三区片免费| 国产又粗又长又爽又黄的视频| brazzers欧美精品| 三级影片在线观看欧美日韩一区二区| 91国内精品白嫩初高生| 欧美成人性福生活免费看| 91在线观看免费高清| 一区二区三区蜜桃| 精品一区二区精品| 成人av片网址| 各处沟厕大尺度偷拍女厕嘘嘘| 日韩色图在线观看| 色综合男人天堂| 黄色成人在线免费| 欧美男人操女人视频| 亚洲av少妇一区二区在线观看| 手机版av在线| 日本aⅴ免费视频一区二区三区| av中文字幕在线| av网站大全免费| 亚洲主播在线| 国产又黄又猛又粗又爽的视频| 国产一区二区视频免费| 四虎免费视频| 久久国产成人午夜av影院| 任我爽在线视频精品一| 国产成人在线视频网址| 久操视频在线播放| 国内精品卡一卡二卡三| 日本丰满少妇黄大片在线观看| 欧美精品日日鲁夜夜添| 国产剧情av在线| 国产精品综合在线| 视频一区在线观看| 99久久婷婷国产一区二区三区| 18国产精品| 挪威xxxx性hd极品| 番号在线播放| 黄色美女久久久| 国产成人av无码精品| www.老鸭窝.com| 国产精品久久三| 国产精品一级片在线观看| 欧美极品影院| 国产视频三级在线观看播放| 粉嫩一区二区三区四区公司1| 欧洲亚洲两性| 国产精品免费aⅴ片在线观看| 午夜视频在线观看一区二区三区| 日韩免费观看网站| 亚洲老头同性xxxxx|