正則表達(dá)式筆記

前幾天寫(xiě)了一個(gè)很簡(jiǎn)陋的模板引擎,關(guān)于正則表達(dá)式瓢剿,我整理了一下,僅供以后再忘記的時(shí)候參考~

關(guān)于正則表達(dá)式(regular expression)

首先攻泼,它是一種工具鉴象,是一些用來(lái)匹配和處理文本的字符串,是正則表達(dá)式語(yǔ)言創(chuàng)建的只搁。主要應(yīng)用場(chǎng)景如下:

①查找特定的信息(搜索)

②查找并編輯特定的信息(替換)

正則表達(dá)式語(yǔ)言俭尖?

它并不是一種完備的程序設(shè)計(jì)語(yǔ)言,甚至算不上是一種能夠直接安裝并運(yùn)行的程序焰望。更準(zhǔn)確的說(shuō)已亥,正則表達(dá)式語(yǔ)言是內(nèi)置于其他語(yǔ)言或軟件產(chǎn)品里的“迷你”語(yǔ)言。幾乎所有語(yǔ)言都支持正則表達(dá)式語(yǔ)言震鹉,但捆姜,正則表達(dá)式與你正在使用的語(yǔ)言或者工具可以說(shuō)毫無(wú)相似之處。

元字符

所謂元字符我覺(jué)得是有特殊意義的字符浆兰,如果要用到字符本身珊豹,需要前面添加\進(jìn)行轉(zhuǎn)義。

元字符大致分為兩種:①用來(lái)匹配文本的(比如 . ) ?②正則表達(dá)式語(yǔ)法所要求的 (比如 ?[ 和 ?])

常見(jiàn)的元字符如下:

. 小圓點(diǎn)蜕便,用來(lái)表示任何一個(gè)單個(gè)的小于兩個(gè)字節(jié)長(zhǎng)度的字符

[ ] 定義一個(gè)字符集合忽妒。[ 和 ] 之間所有的字符都是該集合的組成部分兼贸,字符集合的匹配結(jié)果是能夠與該集合里任何一個(gè)成員相匹配的文本吃溅。

- 字符區(qū)間。主要用于[ ] 之間螺垢,比如[012345679]等價(jià)于[0-9]赖歌。當(dāng)然不僅限于于數(shù)字。關(guān)于“-”需要注意一下幾點(diǎn):①字符區(qū)間的首尾字符可以是ASCII字符表里的任意字符②避免尾字符小于首字符(例如[3-1])孽亲,會(huì)失效展父。③作為元字符只能用在 [ 和 ] ?之間,在字符集合以外的地方篮绿,"-"只是一個(gè)普通字符吕漂,能與"-"匹配,無(wú)需轉(zhuǎn)轉(zhuǎn)義惶凝。

^元字符,對(duì)于一個(gè)字符集合進(jìn)行取非匹配鲸睛。注意:^的效果作用于給定字符集合的所有字符或字符區(qū)坡贺,而不是僅限于緊跟在^字符后面的那個(gè)字符或字符區(qū)間遍坟。

\ ?對(duì)元字符進(jìn)行轉(zhuǎn)義晴股。

匹配空白元字符

\r 回車符 ? ? \n 換行符 ? ? \t 制表符

匹配數(shù)字,非數(shù)字的類元字符

\d 任何一個(gè)數(shù)字字符隔节,并不會(huì)匹配“10” ? <=> [0-9]

\D 任何一個(gè)非數(shù)字的字符

匹配字符數(shù)字,非字母數(shù)字的類元字符

\w 任何一個(gè)字符數(shù)字字符(大小寫(xiě)均可以)或者下劃線 ?<=> [a-z0-9A-9Z_]

\W 任何一個(gè)非字母數(shù)字字符或下劃線字符

匹配所有空白字符的類元字符

\s 任何一個(gè)空白字符 ?<=> [\f\n\r\t]

\S 任何一個(gè)非空白字符

重復(fù)匹配

匹配同一個(gè)字符(或字符集合)的多次匹配

+ 匹配一個(gè)或多個(gè)字符(至少一個(gè))

* 匹配0個(gè)或者多個(gè)字符

? 匹配零個(gè)或者一個(gè) ? ? ?\r? <=> [\r]?

{n} 匹配n次

{n ,m} 匹配n到m次

{n,} 至少匹配n次

注意:

* 和 + 都是所謂”貪婪型“的元字符瘾晃,匹配到的行為模式越多越好。相反幻妓,懶惰型是匹配盡可能少的字符。

位置匹配

\b 單詞邊界

^ 字符串開(kāi)頭邊界 ? ^是多用途的元字符强胰,只有出現(xiàn)在[ 和 ]中并緊跟[偶洋,是發(fā)揮求非作用

$ 字符串結(jié)尾邊界

(?m) 配合^和$ 使用距糖,換行符被視為一個(gè)字符串分隔符

關(guān)于元字符結(jié)束了,接下簡(jiǎn)單說(shuō)一下特別有用的子表達(dá)式

子表達(dá)式是一個(gè)大的表達(dá)式的一部分肾筐,把一個(gè)表達(dá)式劃分為多個(gè)子表達(dá)式的目的是為了把那些子表達(dá)式當(dāng)作一個(gè)獨(dú)立的元素來(lái)使用。子表達(dá)式必須用 ( 和 ) 括起來(lái)东亦。

回溯引用

\1 \2 ..... ?注意 在JS中 用$代替\

$' ?返回被匹配字符串前面的所有東西

$` ?返回被匹配字符串后面的所有東西

$+ 返回最后一個(gè)被匹配的子表達(dá)式

$& ?返回被匹配到的所有東西

前后查找

?= 向前查找 ? ? ??<=向后查找 ? ? ?注意:JS中不支持向后查找

JS中的正則表達(dá)式

①JS對(duì)正則表達(dá)式的支持來(lái)源于Perl語(yǔ)言

②命令選項(xiàng)有: g 全局典阵;i 不區(qū)分大小寫(xiě)镊逝; m 多行字符串; s 單行字符串撑蒜;

③POSIX字符類不被JS支持

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末座菠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子浴滴,更是在濱河造成了極大的恐慌,老刑警劉巖升略,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異炕倘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)拓型,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門瘸恼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人东帅,你說(shuō)我怎么就攤上這事≌饰遥” “怎么了愧膀?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)檩淋。 經(jīng)常有香客問(wèn)我,道長(zhǎng)媚朦,這世上最難降的妖魔是什么日戈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任浙炼,我火速辦了婚禮份氧,結(jié)果婚禮上半火,老公的妹妹穿的比我還像新娘季俩。我一直安慰自己酌住,他們只是感情好店归,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布消痛。 她就那樣靜靜地躺著都哭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纱新。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天脸爱,我揣著相機(jī)與錄音未妹,去河邊找鬼。 笑死族檬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的单料。 我是一名探鬼主播迂烁,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼藏斩!你這毒婦竟也來(lái)了却盘?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤兆览,失蹤者是張志新(化名)和其女友劉穎塞关,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡线梗,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年仪搔,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蜻牢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡煮嫌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出立膛,到底是詐尸還是另有隱情梯码,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布轩娶,位于F島的核電站,受9級(jí)特大地震影響鳄抒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瓤鼻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一贤重、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧并蝗,春花似錦、人聲如沸沃粗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至挂签,卻和暖如春盼产,著一層夾襖步出監(jiān)牢的瞬間勺馆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工草穆, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锋喜。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓豌鸡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親炉奴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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