學(xué)習(xí)闯割、認(rèn)識正則表達(dá)式-語法

想要學(xué)會并且使用正則表達(dá)式首先就要能夠讀懂它的語法肆氓,下面廢話少說讓我們看看正則表達(dá)式的基本語法去枷。

首先竭望,特殊符號'^'和'$'邪码。他們的作用是分別指出一個字符串的開始和結(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個字符重復(fù)出現(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”,……)。

可以用大括號括起來({})攒至,表示一個重復(fù)的具體范圍厚者。例如
“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”(相當(dāng)于”a|b”)颂郎;
“[a-d]“:表示一個字符串包含小寫的'a'到'd'中的一個(相當(dāng)于”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)的字符,'^'應(yīng)在方括號里的第一位。  
[“@[^a-zA-Z]4]@”表示兩個”@”中不應(yīng)該出現(xiàn)字母)。

常用的還有:
“ \d ”匹配一個數(shù)字字符。等價于[0-9]皂股。
“ \D”匹配一個非數(shù)字字符。等價于[^0-9]命黔。
“ \w ”匹配包括下劃線的任何單詞字符呜呐。等價于“[A-Za-z0-9_]”。
“ \W ”匹配任何非單詞字符悍募。等價于“[^A-Za-z0-9_]”蘑辑。

iOS中書寫正則表達(dá)式,碰到轉(zhuǎn)義字符坠宴,多加一個“\”,例如:
全數(shù)字字符:@”^\\d\+$”
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洋魂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子喜鼓,更是在濱河造成了極大的恐慌副砍,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件庄岖,死亡現(xiàn)場離奇詭異豁翎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)顿锰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進(jìn)店門谨垃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來启搂,“玉大人硼控,你說我怎么就攤上這事「於模” “怎么了牢撼?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長疑苫。 經(jīng)常有香客問我熏版,道長纷责,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任撼短,我火速辦了婚禮再膳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘曲横。我一直安慰自己喂柒,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布禾嫉。 她就那樣靜靜地躺著灾杰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪熙参。 梳的紋絲不亂的頭發(fā)上艳吠,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天,我揣著相機(jī)與錄音孽椰,去河邊找鬼昭娩。 笑死,一個胖子當(dāng)著我的面吹牛黍匾,可吹牛的內(nèi)容都是我干的题禀。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼膀捷,長吁一口氣:“原來是場噩夢啊……” “哼迈嘹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起全庸,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤秀仲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后壶笼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體神僵,經(jīng)...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年覆劈,在試婚紗的時候發(fā)現(xiàn)自己被綠了保礼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡责语,死狀恐怖炮障,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坤候,我是刑警寧澤胁赢,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站白筹,受9級特大地震影響智末,放射性物質(zhì)發(fā)生泄漏谅摄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一系馆、第九天 我趴在偏房一處隱蔽的房頂上張望送漠。 院中可真熱鬧,春花似錦由蘑、人聲如沸螺男。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽下隧。三九已至,卻和暖如春谓媒,著一層夾襖步出監(jiān)牢的瞬間淆院,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工句惯, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留土辩,地道東北人。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓抢野,卻偏偏與公主長得像拷淘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子指孤,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,562評論 2 349

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