簡單的正則表達(dá)式梳理 2018-07-14

在正則表達(dá)式中什乙,如果直接給出字符淋硝,就是精確匹配。/1w!/


用\d可以匹配一個(gè)數(shù)字父能,\w可以匹配一個(gè)字母或數(shù)字

????所以:

????????????'00\d'可以匹配'007'神凑,但無法匹配'00A';

????????????'\d\d\d'可以匹配'010'何吝;

????????????'\w\w'可以匹配'js'溉委;


?.? ? 可以匹配任意字符

????所以:

? ??????????'js.'可以匹配'jsp'、'jss'爱榕、'js!'等


要匹配變長的字符瓣喊,在正則表達(dá)式中,用*表示任意個(gè)字符(包括0個(gè))黔酥,用+表示至少一個(gè)字符藻三,用?表示0個(gè)或1個(gè)字符,用{n}表示n個(gè)字符絮爷,用{n,m}表示n-m個(gè)字符:

? ? 所以:

? ??????????\d{3}\s+\d{3,8}表示:

? ??????????\d{3}表示匹配3個(gè)數(shù)字趴酣,例如'010'梨树;

? ??????????\s可以匹配一個(gè)空格(也包括Tab等空白符)坑夯,所以\s+表示至少有一個(gè)空格,例如匹配' '抡四,'\t\t'等柜蜈;

? ??????????\d{3,8}表示3-8個(gè)數(shù)字,例如'1234567'


特殊字符指巡,在正則表達(dá)式中淑履,要用'\'轉(zhuǎn)義

? ???所以:

? ??????????\d{3}\-\d{3,8}? 匹配? '010-12345'


要做更精確地匹配,可以用[]表示范圍

? ? 例如:

? ??????????[0-9a-zA-Z\_]可以匹配一個(gè)數(shù)字藻雪、字母或者下劃線秘噪;

? ??????????[0-9a-zA-Z\_]+可以匹配至少由一個(gè)數(shù)字、字母或者下劃線組成的字符串勉耀,比如'a100'指煎,'0_Z','js2015'等等便斥;

? ??????????[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下劃線至壤、$開頭,后接任意個(gè)由一個(gè)數(shù)字枢纠、字母或者下劃線像街、$組成的字符串,也就是JavaScript允許的變量名;

? ??????????[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精確地限制了變量的長度是1-20個(gè)字符(前面1個(gè)字符+后面最多19個(gè)字符)


A|B可以匹配A或B镰绎,所以(J|j)ava(S|s)cript可以匹配'JavaScript'脓斩、'Javascript'、'javaScript'或者'javascript'


^表示行的開頭畴栖,^\d表示必須以數(shù)字開頭


$表示行的結(jié)束俭厚,\d$表示必須以數(shù)字結(jié)束


除了簡單地判斷是否匹配之外,正則表達(dá)式還有提取子串的強(qiáng)大功能驶臊。用()表示的就是要提取的分組(Group)

? ? 例如:

? ??????????^(\d{3})-(\d{3,8})$分別定義了兩個(gè)組挪挤,可以直接從匹配的字符串中提取出區(qū)號(hào)和本地號(hào)碼:

????????????var? re =/^(\d{3})-(\d{3,8})$/;

????????????????????re.exec('010-12345');// ['010-12345', '010', '12345']

????????????????????re.exec('010 12345');// null


貪婪匹配

????????需要特別指出的是,正則匹配默認(rèn)是貪婪匹配关翎,也就是匹配盡可能多的字符扛门。

非貪婪匹配(也就是盡可能少匹配)

????????加個(gè)?就可以讓\d+采用非貪婪匹配


全局搜索

最常用的是g,表示全局匹配

? ? 例如:

? ??????????/test/g

? ? ? ? 注:全局匹配類似搜索纵寝,因此不能使用/^...$/论寨,那樣只會(huì)最多匹配一次


正則表達(dá)式還可以指定i標(biāo)志,表示忽略大小寫爽茴,m標(biāo)志葬凳,表示執(zhí)行多行匹配


如果你經(jīng)常遇到正則表達(dá)式的問題,你可能需要一本正則表達(dá)式的參考書室奏。

\033[##m

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末火焰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子胧沫,更是在濱河造成了極大的恐慌昌简,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绒怨,死亡現(xiàn)場離奇詭異纯赎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)南蹂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門犬金,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人六剥,你說我怎么就攤上這事晚顷。” “怎么了仗考?”我有些...
    開封第一講書人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵音同,是天一觀的道長。 經(jīng)常有香客問我秃嗜,道長权均,這世上最難降的妖魔是什么顿膨? 我笑而不...
    開封第一講書人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮叽赊,結(jié)果婚禮上恋沃,老公的妹妹穿的比我還像新娘。我一直安慰自己必指,他們只是感情好囊咏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著塔橡,像睡著了一般梅割。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上葛家,一...
    開封第一講書人閱讀 51,521評(píng)論 1 304
  • 那天户辞,我揣著相機(jī)與錄音,去河邊找鬼癞谒。 笑死底燎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的弹砚。 我是一名探鬼主播双仍,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼桌吃!你這毒婦竟也來了朱沃?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤读存,失蹤者是張志新(化名)和其女友劉穎为流,沒想到半個(gè)月后呕屎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體让簿,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年秀睛,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尔当。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蹂安,死狀恐怖椭迎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情田盈,我是刑警寧澤畜号,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站允瞧,受9級(jí)特大地震影響简软,放射性物質(zhì)發(fā)生泄漏蛮拔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一痹升、第九天 我趴在偏房一處隱蔽的房頂上張望建炫。 院中可真熱鬧,春花似錦疼蛾、人聲如沸肛跌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衍慎。三九已至,卻和暖如春皮钠,著一層夾襖步出監(jiān)牢的瞬間西饵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來泰國打工鳞芙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留眷柔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓原朝,卻偏偏與公主長得像驯嘱,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子喳坠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

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