iOS 正則表達(dá)式語(yǔ)法規(guī)范

一雇盖、行定位符(^和$)
  行定位符就是用來(lái)描述字串的邊界忿等。“^”表示行的開(kāi)始崔挖;“$”表示行的結(jié)尾贸街。如:
  ^tm : 該表達(dá)式表示要匹配字串tm的開(kāi)始位置是行頭,如tm equal Tomorrow Moon就可以匹配
  tm$ : 該表達(dá)式表示要匹配字串tm的位置是行尾狸相,Tomorrow Moon equal tm匹配薛匪。
  如果要匹配的字串可以出現(xiàn)在字符串的任意部分,那么可以直接 寫(xiě)成 :tm
二脓鹃、單詞定界符(\b逸尖、\B)
  單詞分界符\b,表示要查找的字串為一個(gè)完整的單詞瘸右。如:\btm\b
  還有一個(gè)大寫(xiě)的\B娇跟,意思和\b相反。它匹配的字串不能是一個(gè)完整的單詞尊浓,而是其他單詞或字串的一部分逞频。如:\Btm\B
三、字符類([ ])
  正則表達(dá)式是區(qū)分大小寫(xiě)的栋齿,如果要忽略大小寫(xiě)可使用方括號(hào)表達(dá)式“[]”苗胀。只要匹配的字符出現(xiàn)在方括號(hào)內(nèi),即可表示匹配成功瓦堵。但要注意:一個(gè)方括號(hào)只能匹配一個(gè)字符基协。例如,要匹配的字串tm不區(qū)分大小寫(xiě)菇用,那么該表達(dá)式應(yīng)該寫(xiě)作如下格式:[Tt][Mm]
  POSIX風(fēng)格的預(yù)定義字符類如表所示:
  


四澜驮、選擇字符(|)
  還有一種方法可以實(shí)現(xiàn)上面的匹配模式,就是使用選擇字符(|)惋鸥。該字符可以理解為“或”杂穷,如上例也可以寫(xiě)成 (T|t)(M|m)悍缠,該表達(dá)式的意思是以字母T或t開(kāi)頭,后面接一個(gè)字母M或m耐量。
  使用“[]”和使用“|”的區(qū)別在于“[]”只能匹配單個(gè)字符飞蚓,而“|”可以匹配任意長(zhǎng)度的字串。如果不怕麻煩廊蜒,上例還可以寫(xiě)為 :TM|tm|Tm|tM

五趴拧、連字符(-)
  變量的命名規(guī)則是只能以字母和下劃線開(kāi)頭。但這樣一來(lái)山叮,如果要使用正則表達(dá)式來(lái)匹配變量名的第一個(gè)字母著榴,要寫(xiě)為 :[a,b,c,d…A,B,C,D…]
  這無(wú)疑是非常麻煩的,正則表達(dá)式提供了連字符“-”來(lái)解決這個(gè)問(wèn)題屁倔。連字符可以表示字符的范圍脑又。如上例可以寫(xiě)成 :[a-zA-Z]
六、排除字符([^])
  上面的例子是匹配符合命名規(guī)則的變量∪窠瑁現(xiàn)在反過(guò)來(lái)挂谍,匹配不符合命名規(guī)則的變量,正則表達(dá)式提供了“^”字符瞎饲。這個(gè)元字符在前面出現(xiàn)過(guò)口叙,表示行的開(kāi)始。而這里將會(huì)放到方括號(hào)中嗅战,表示排除的意思妄田。
  例如:[^a-zA-Z],該表達(dá)式匹配的就是不以字母和下劃線開(kāi)頭的變量名驮捍。
七疟呐、限定符(? * + {n,m})
  對(duì)于重復(fù)出現(xiàn)字母或字串,可以使用限定符來(lái)實(shí)現(xiàn)匹配东且。限定符主要有6種启具,如表所示:
  


八、點(diǎn)號(hào)字符(.)
  點(diǎn)字符(.)可以匹配出換行符外的任意一個(gè)字符珊泳。
  注意:是除了換行符外的鲁冯、任意的一個(gè)字符。如匹配以s開(kāi)頭色查、t結(jié)尾薯演、中間包含一個(gè)字母的單詞。
  格式如下: ^s.t$秧了,匹配的單詞包括:sat跨扮、set、sit等。
  再舉一個(gè)實(shí)例衡创,匹配一個(gè)單詞帝嗡,它的第一個(gè)字母為r,第3個(gè)字母為s璃氢,最后一個(gè)字母為t丈探。能匹配該單詞的正則表達(dá)式為:^r.s.t$
九、轉(zhuǎn)義字符(\)
  正則表達(dá)式中的轉(zhuǎn)移字符(\)和PHP中的大同小異拔莱,都是將特殊字符(如“.”、“?”隘竭、“\”等)變?yōu)槠胀ǖ淖址燎亍Ee一個(gè)IP地址的實(shí)例,用正則表達(dá)式匹配諸如127.0.0.1這樣格式的IP地址动看。如果直接使用點(diǎn)字符尊剔,格式為:[0-9]{1,3}(.[0-9]{1,3}){3}
  這顯然不對(duì),因?yàn)椤?”可以匹配一個(gè)任意字符菱皆。這時(shí)须误,不僅是127.0.0.1這樣的IP,連127101011這樣的字串也會(huì)被匹配出來(lái)仇轻。所以在使用“.”時(shí)京痢,需要使用轉(zhuǎn)義字符(\)。修改后上面的正則表達(dá)式格式為: [0-9]{1,3}(.[0-9]{1,3}){3}
十篷店、反斜線(\)
  除了可以做轉(zhuǎn)義字符外祭椰,反斜線還有其他一些功能。反斜線可以將一些不可打印的字符顯示出來(lái)疲陕,如表所示:
  

  還可以指定預(yù)定義字符集方淤,如表所示:
  

  反斜線還有一種功能,就是定義斷言蹄殃,其中已經(jīng)了解過(guò)了\b携茂、\B,其他如表所示:
  

十一诅岩、括號(hào)字符(())
  小括號(hào)字符的第一個(gè)作用就是可以改變限定符的作用范圍讳苦,如“|”、“
”吩谦、“^”等医吊。來(lái)看下面的一個(gè)表達(dá)式。
  (thir|four)th逮京,這個(gè)表達(dá)式的意思是匹配單詞thirth或fourth卿堂,如果不使用小括號(hào),那么就變成了匹配單詞thir和fourth了。
  小括號(hào)的第二個(gè)作用是分組草描,也就是子表達(dá)式览绿。如(.[0-9]{1,3}){3},就是對(duì)分組(.[0-9]{1,3})進(jìn)行重復(fù)操作穗慕。后面要學(xué)到的反向引用和分組有著直接的關(guān)系饿敲。
十二、反向引用
十三逛绵、模式修飾符
  模式修飾符的作用是設(shè)定模式怀各。也就是規(guī)定正則表達(dá)式應(yīng)該如何解釋和應(yīng)用。
  不同的語(yǔ)言都有自己的模式設(shè)置术浪,PHP中的主要模式如表所示:
  

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓢对,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胰苏,更是在濱河造成了極大的恐慌硕蛹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件硕并,死亡現(xiàn)場(chǎng)離奇詭異法焰,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)倔毙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門埃仪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人陕赃,你說(shuō)我怎么就攤上這事贵试。” “怎么了凯正?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵毙玻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我廊散,道長(zhǎng)桑滩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任允睹,我火速辦了婚禮运准,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缭受。我一直安慰自己胁澳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布米者。 她就那樣靜靜地躺著韭畸,像睡著了一般宇智。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胰丁,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天随橘,我揣著相機(jī)與錄音,去河邊找鬼锦庸。 笑死机蔗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的甘萧。 我是一名探鬼主播萝嘁,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼扬卷!你這毒婦竟也來(lái)了牙言?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤邀泉,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后钝鸽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體汇恤,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年拔恰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了因谎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡颜懊,死狀恐怖财岔,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情河爹,我是刑警寧澤匠璧,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站咸这,受9級(jí)特大地震影響夷恍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜媳维,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一酿雪、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧侄刽,春花似錦指黎、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春茬故,著一層夾襖步出監(jiān)牢的瞬間盖灸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工磺芭, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赁炎,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓钾腺,卻偏偏與公主長(zhǎng)得像徙垫,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子放棒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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