正則表達(dá)式中?=和?:和?!的理解

要理解?=和?!惠拭,首先需要理解前瞻三椿,后顧庆械,負(fù)前瞻沃疮,負(fù)后顧四個(gè)概念:

// 前瞻:
exp1(?=exp2) 查找exp2前面的exp1
// 后顧:
(?<=exp2)exp1 查找exp2后面的exp1
// 負(fù)前瞻:
exp1(?!exp2) 查找后面不是exp2的exp1
// 負(fù)后顧:
(?<!exp2)exp1 查找前面不是exp2的exp1

舉例:

"中國(guó)人".replace(/(?<=中國(guó))人/, "rr") // 匹配中國(guó)人中的人盒让,將其替換為rr梅肤,結(jié)果為 中國(guó)rr
"法國(guó)人".replace(/(?<=中國(guó))人/, "rr") // 結(jié)果為 法國(guó)人,因?yàn)槿饲懊娌皇侵袊?guó)邑茄,所以無法匹配到

要理解?:則需要理解捕獲分組和非捕獲分組的概念:

()表示捕獲分組姨蝴,()會(huì)把每個(gè)分組里的匹配的值保存起來,使用$n(n是一個(gè)數(shù)字肺缕,表示第n個(gè)捕獲組的內(nèi)容)
(?:)表示非捕獲分組左医,和捕獲分組唯一的區(qū)別在于,非捕獲分組匹配的值不會(huì)保存起來

舉例:

// 數(shù)字格式化 1,123,000
"1234567890".replace(/\B(?=(?:\d{3})+(?!\d))/g,",") 
// 結(jié)果:1,234,567,890同木,匹配的是后面是3*n個(gè)數(shù)字的非單詞邊界(\B)

正則表達(dá)式的() [] {} 有著不同的意思浮梢。

() 是為了提取匹配字符串的,表達(dá)式中有幾個(gè)()就有幾個(gè)相應(yīng)的匹配字符串
(\s)表示連續(xù)空格的字符串
[] 是定義匹配的字符范圍彤路。比如[a-zA-Z0-9]表示相應(yīng)位置的字符要匹配英文字符和數(shù)字秕硝。[\s
表示空格或者號(hào)]
{}一般是用來匹配的長(zhǎng)度。比如\s{3}表示匹配三個(gè)空格洲尊,\s[1,3]表示匹配1到3個(gè)空格
(0-9)匹配'0-9'本身远豺。[0-9]
匹配數(shù)字(注意后面有*,可以為空)[0-9]+匹配數(shù)字(注意后面有+坞嘀,不可以為空)躯护,
{0-9}寫法是錯(cuò)誤的
[0-9]{0,9}表示長(zhǎng)度為0到9的數(shù)字字符串。

圓括號(hào)()是組丽涩,主要應(yīng)用在限制多選結(jié)構(gòu)的范圍/分組/捕獲文本/環(huán)視/特殊模式處理

示例:

1(abc|bcd|cde),表示這一段是abc棺滞、bcd、cde三者之一矢渊,順序也必須一致
2检眯、(abc)? 表示這一組要么一起出現(xiàn)昆淡,要么不出現(xiàn)锰瘸,出現(xiàn)那則按順序出現(xiàn)
3、(昂灵?:abc)表示找到一樣abc的一組避凝,但是不記錄,不保存到變量中眨补,否則可以通過變量中管削,否則可以通過x取第幾個(gè)括號(hào)所匹配道德項(xiàng),比如:
(aaa)(bbb)(ccc)(?:ddd)(eee)可以用1獲取(??????)匹配到的內(nèi)容撑螺,而1獲取(aaa)匹配到的內(nèi)容含思,而3則獲取到了(ccc)匹配到的內(nèi)容,而$4則獲取的是由(eee)匹配到的內(nèi)容,因?yàn)榍耙粚?duì)括號(hào)沒有保存變量
4.a(?=bbb)順序環(huán)視 表示a后面必須緊跟3個(gè)連續(xù)的b
5含潘、(?i:xxxx)不區(qū)分大小寫   (?s:.*)跨行匹配饲做,可以匹配回車符

方括號(hào)是單個(gè)匹配 字符集/排除字符集/命名字符集

示例:

1、[0-3]遏弱,表示找到一個(gè)位置上的字符只能是0到3折四個(gè)數(shù)字盆均,與(abc|bcd|cde)的作用比較類似,但圓括號(hào)可以匹配多個(gè)連續(xù)的字符
而一對(duì)方括號(hào)只能匹配單個(gè)字符
2漱逸、[^0-3] 表示找到這個(gè)位置上字符只能是除了0到3之外的所有字符
3泪姨、[:digit:] 0-9 [:alnum] A-Za-z0-9


()和[]有本質(zhì)的區(qū)別

()內(nèi)的內(nèi)容表示的是一個(gè)表達(dá)式,()本身不匹配任何東西饰抒,也不惜那是匹配任何東西肮砾,只是把括號(hào)內(nèi)的內(nèi)容作為

同一個(gè)表達(dá)式來處理,例如(ab){1,3},就表示ab一起連續(xù)出現(xiàn)最少1次袋坑,最多三次唇敞。如果沒有括號(hào)的話,ab{1,3},

就表示a 后面緊跟的b出現(xiàn)的最少一次咒彤,最多三次疆柔。另外,括號(hào)在匹配模式中也跟重要镶柱。這個(gè)就不延伸了旷档。

[]表示匹配字符在[]中,兵出現(xiàn)一次歇拆,并且reshuffle字符寫在[]會(huì)被當(dāng)成普通字符來匹配鞋屈,例如[(a)],會(huì)匹配(、a故觅、)厂庇、這三個(gè)字符。

所以()[] 無論是作用還是表示的含義输吏。都有天壤之別权旷,沒有什么聯(lián)系。

版權(quán)聲明:本文為CSDN博主「這個(gè)昵稱沒有被占用吧」的原創(chuàng)文章贯溅,遵循CC 4.0 BY-SA版權(quán)協(xié)議拄氯,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/csm0912/article/details/81206848

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末它浅,一起剝皮案震驚了整個(gè)濱河市译柏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌姐霍,老刑警劉巖鄙麦,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件典唇,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡胯府,警方通過查閱死者的電腦和手機(jī)介衔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盟劫,“玉大人,你說我怎么就攤上這事与纽÷虑” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵急迂,是天一觀的道長(zhǎng)影所。 經(jīng)常有香客問我,道長(zhǎng)僚碎,這世上最難降的妖魔是什么猴娩? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮勺阐,結(jié)果婚禮上卷中,老公的妹妹穿的比我還像新娘。我一直安慰自己渊抽,他們只是感情好蟆豫,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著懒闷,像睡著了一般十减。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愤估,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天帮辟,我揣著相機(jī)與錄音,去河邊找鬼玩焰。 笑死由驹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的昔园。 我是一名探鬼主播荔棉,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蒿赢!你這毒婦竟也來了润樱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤羡棵,失蹤者是張志新(化名)和其女友劉穎壹若,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡店展,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年养篓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赂蕴。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柳弄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出概说,到底是詐尸還是另有隱情碧注,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布糖赔,位于F島的核電站萍丐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏放典。R本人自食惡果不足惜逝变,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望奋构。 院中可真熱鬧壳影,春花似錦、人聲如沸弥臼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醋火。三九已至悠汽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間芥驳,已是汗流浹背柿冲。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兆旬,地道東北人假抄。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像丽猬,于是被迫代替她去往敵國(guó)和親宿饱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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