十分鐘學會基礎的正則表達式

正則表達式在開發(fā)中是非常受歡迎的嫁佳,比如做一個手機號碼的判斷璃诀,用正則來判斷就很簡單了弧可,或者一個身份號碼的驗證,這些正則網(wǎng)上一搜一大堆劣欢,但是萬一哪一天移動出了一個新的號碼段呢棕诵,那你該怎么去修改呢裁良,所以還是得自己懂一些可以自己去修改就方便多了,今天看到了一篇簡書寫得挺好的校套,學習了一下感覺還是蠻簡單的价脾,原貼鏈接
正則表達式的基礎語法:

 1笛匙、^和$分別表示一個字符串的開始和結(jié)束
    eg: 
        “^one”:表示所有以”one”開始的字符串("one cat"侨把,"one123",·····)
        "a dog$":表示所以以"a dog"結(jié)尾的字符串("it is a dog"妹孙,·····)
        "^apple$":表示開始和結(jié)尾都是"apple"的字符串
       "banana":表示任何包含"banana"的字符串秋柄。
 2 '*','+'和'?'這三個符號蠢正,表示一個或N個字符重復出現(xiàn)的次數(shù)骇笔。它們分別表示“沒有或更多”,“一次或更多”机隙,“沒有或一次”
    eg:
        "ab*" 這里表示b的個數(shù)可以無限多蜘拉,也可以沒有"a","abbbbbbbb"
        "ab+" 表示b至少有一個, "ab" "abbbbbb"
        "ab?" 只能表示"a"或者"ab"
 3有鹿、大括號括起來({})旭旭,表示一個重復的具體范圍
    eg:
        "ab{4}" 則表示"abbbb"
        "ab{1,}" 說明至少有一個b,也可以有多個
        "ab{3,4}" a后面跟著3個或者4個b
 4葱跋、| 或操作持寄,一般對象需要小括號包含
    eg:
        "(a|b)"  表示"a" 或 "b"
 5、[] 表示區(qū)間 一般與“-”搭配使用 表示有在這個區(qū)間有一個字符 若沒有"-"則表示取[]里面的一個字符
    eg: 
        [abcd] 表示abcd里面的一個字符
        "[a-z]" 表示在a-z這個區(qū)間有一個字符
        "[a-zA-Z]$" 表示以一個字母結(jié)尾
        "[0-9]$" 表示以一個數(shù)字結(jié)尾  
        tips: [0-9] 等價于 \d 表示一個數(shù)字
              [^0-9] 等價于\D 表示一個非數(shù)字的字符
              [A-Za-z0-9_] 等價于“\w” 匹配包括下劃線的任何單詞字符
              [^A-Za-z0-9_] 等價于 “\W” 匹配任何非單詞字符
 6娱俺、"."匹配除"\r\n"之外的任何單個字符
    eg:
        "^.{5}$" 表示任意的5位字符
        "a.[a-z]" 表示一個三位的字符

現(xiàn)在來寫一個關于中國移動的手機號碼的正則:
需求:
中國移動:China Mobile
134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188

看起來略微復雜,其實認真想一下還是比較的簡單的
"^1"都是1開頭的
第二位有3 4 5 7 8 
"^1(3|4|5|7|8)"
第三位需要跟著第二位一起判定的
"^1(3[4-9]|47|5[127-9]|7[08]|8[2-478])"
前三位就搞定了稍味,然后寫上后8位數(shù)字
"^1(3[4-9]|47|5[127-9]|7[08]|8[2-478])\\d{8}$"
'\'(轉(zhuǎn)義字符)這樣一個簡單的正則表達式就寫好了。

在iOS中的運用:

NSString *CM = @"^1(3[4-9]|47|5[127-9]|7[08]|8[2-478])\\d{8}$";
NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];
if([regextestcm evaluateWithObject:phoneString]){
   return YES;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荠卷,一起剝皮案震驚了整個濱河市模庐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌油宜,老刑警劉巖掂碱,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異慎冤,居然都是意外死亡疼燥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門蚁堤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醉者,“玉大人,你說我怎么就攤上這事∏思矗” “怎么了立磁?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長搞莺。 經(jīng)常有香客問我息罗,道長,這世上最難降的妖魔是什么才沧? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任迈喉,我火速辦了婚禮,結(jié)果婚禮上温圆,老公的妹妹穿的比我還像新娘挨摸。我一直安慰自己,他們只是感情好岁歉,可當我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布得运。 她就那樣靜靜地躺著,像睡著了一般锅移。 火紅的嫁衣襯著肌膚如雪熔掺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天非剃,我揣著相機與錄音置逻,去河邊找鬼。 笑死备绽,一個胖子當著我的面吹牛券坞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肺素,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼恨锚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了倍靡?” 一聲冷哼從身側(cè)響起猴伶,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塌西,沒想到半個月后他挎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡雨让,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忿等。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栖忠。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庵寞,到底是詐尸還是另有隱情狸相,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布捐川,位于F島的核電站脓鹃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏古沥。R本人自食惡果不足惜瘸右,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望岩齿。 院中可真熱鬧太颤,春花似錦、人聲如沸盹沈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乞封。三九已至做裙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間肃晚,已是汗流浹背锚贱。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陷揪,地道東北人惋鸥。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像悍缠,于是被迫代替她去往敵國和親卦绣。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,500評論 2 359

推薦閱讀更多精彩內(nèi)容