正則表達(dá)式基礎(chǔ)

常用元字符

代碼 說明
. 匹配除了換行符以為的任意字符
\w 匹配字母或數(shù)字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數(shù)字
\b 匹配單詞開始或者結(jié)束
^ 匹配字符串的開始
$ 匹配字符串的結(jié)束

單詞:不少于一個(gè)的連續(xù)\w

元字符^$都匹配一個(gè)位子,這和\b有點(diǎn)類似痊末。 ^匹配索要查找的字符串開頭,$匹配結(jié)尾豁辉。

字符轉(zhuǎn)義

如果想要查找字符本身得使用\來取消這些字符的特殊意義。

. -> \.

重復(fù)

常用限定符:

代碼/語法 說明(重復(fù)x次)
* x≥0
+ x≥1
? x=0或1
{n} x=n
{n,} x≥n
{n,m} n≤x≤m

字符類

匹配沒有預(yù)定義字符的字符集合

  1. (a, e, i, o, u)
    --> [a, e, i, o, u]就匹配任何一個(gè)英文原因字母
  2. [0-9] === \d
  3. [a-z0-9A-Z_] === \w

分枝條件

具體條件用|分隔開

分組

重復(fù)多個(gè)單字符直接在后面加上限定符就行了贮勃,但是如果想要重復(fù)多個(gè)單字符-->使用小括號(hào)(分組)

反義

常用反義代碼

代碼/語法 說明
\W 匹配任意不是字母童擎、數(shù)字滴劲、下劃線、漢字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非數(shù)字的字符
\B 匹配不是單詞開頭或者結(jié)束的位置
[^ x] 匹配除了x意外的任意字符
[^ aeiou] 匹配除了aeiou幾個(gè)字母以外的任意字符

## ****后向引用
使用小括號(hào)指定一個(gè)表達(dá)式顾复,匹配這個(gè)子表達(dá)式的文本可以在其他程序中作進(jìn)一步的處理班挖。默認(rèn)情況下會(huì)自動(dòng)擁有一個(gè)組號(hào),規(guī)則是:從左向右芯砸。

  • 分組0對(duì)應(yīng)整個(gè)正則表達(dá)式
  • 實(shí)際上組號(hào)分配過程是要從左向右掃描兩遍的:第一遍只給未命名組分配萧芙,第二遍只給命名組分配给梅,因此所有命名組的組號(hào)都大于未命名的組號(hào)
  • 可以使用(?:exp)這樣的語法來剝奪一個(gè)分組對(duì)組號(hào)分配的參與權(quán)

常用分組語法:

分類 代碼/語法 說明
捕獲 (exp) 匹配exp,并捕獲文本到自動(dòng)命名的組里
(?<name>exp) 匹配exp双揪,并捕獲文本到名稱為name的組里动羽,也可以寫成(?'name'exp)
(?:exp) 匹配exp,不捕獲匹配的文本渔期,也不給此分組編號(hào)
零寬斷言 (?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置
注釋 (?#comment) 這種類型的分組不對(duì)正則表達(dá)式的處理產(chǎn)生任何影響运吓,用于提供注釋讓人閱讀

零寬斷言

斷言用來聲明一個(gè)應(yīng)該為真得事實(shí)。正則表達(dá)式中只有當(dāng)斷言為真時(shí)才會(huì)繼續(xù)匹配擎场。

  • (?=exp)也叫零寬度正預(yù)測(cè)先行斷言羽德,它斷言自身出現(xiàn)的位置的后面能匹配exp。
  • (?<=exp)也叫零寬度正回顧后發(fā)斷言迅办,它斷言自身出現(xiàn)的位置的前面能匹配表達(dá)式exp。

負(fù)向零寬斷言**

可以用來確保某個(gè)字符沒有出現(xiàn)章蚣,并且不想去匹配它

注釋

小括號(hào)的另一種用途是通過語法(?#comment)來包含注釋站欺。

例如:[0-9a-zA-Z_](?#\w)

貪婪與懶惰

貪婪匹配:當(dāng)正則表達(dá)式包含能接受的限定符時(shí),通常的行為是(在使整個(gè)表達(dá)式能得到匹配的前提下)匹配盡可能多的字符纤垂。
懶惰匹配:匹配盡可能少的字符矾策。前面給定的限定符都可以被轉(zhuǎn)化為懶惰匹配模式,只要在它后面加上一個(gè)問號(hào)?峭沦。這樣贾虽。*?就以為這匹配任意數(shù)量的重復(fù)吼鱼,但是在使整個(gè)匹配成功的前提下使用最少的重復(fù)蓬豁。

aabab:
a.*b -> aabab
a.*?b -> aab & ab

懶惰限定符

代碼/語法 說明
*? 重復(fù)任意次,<u>但盡可能少重復(fù)</u>
+? 重復(fù)1次或者更多次菇肃,<u>但盡可能少重復(fù)</u>
?? 重復(fù)0此或者1次地粪,<u>但盡可能少重復(fù)</u>
{n,m} 重復(fù)n到m次,<u>但盡可能少重復(fù)</u>
{n,} 重復(fù)n次以上琐谤,<u>但盡可能少重復(fù)</u>

處理選項(xiàng)

常用的處理選項(xiàng)

名稱 說明
IgnoreCase(忽略大小寫) 匹配時(shí)不區(qū)分大小寫
Multiline(多行模式) 更改^$含義蟆技,使它們分別在任意一行的行首和行尾匹配,而不僅僅在整個(gè)字符串的開頭和結(jié)尾匹配斗忌。(在此模式下质礼,$的精確含義是:匹配\n之前的位置以及字符串結(jié)束前的位置)
Singleline(單行模式) 更改.的含義,使它與每一個(gè)字符匹配(包括換行符\n)
IgnorePatternWhitespace(忽略空白) 忽略表達(dá)式中的非轉(zhuǎn)義空白并請(qǐng)用由#標(biāo)注的注釋
ExplicitCapture(顯示捕獲) 僅捕獲已被顯示命名的組

多行模式單行模式可以同時(shí)使用

常用正則表達(dá)式大全

常用正則表達(dá)式大全

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末织阳,一起剝皮案震驚了整個(gè)濱河市眶蕉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌陈哑,老刑警劉巖妻坝,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伸眶,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡刽宪,警方通過查閱死者的電腦和手機(jī)厘贼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來圣拄,“玉大人嘴秸,你說我怎么就攤上這事”幼唬” “怎么了岳掐?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)饭耳。 經(jīng)常有香客問我串述,道長(zhǎng),這世上最難降的妖魔是什么寞肖? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任纲酗,我火速辦了婚禮,結(jié)果婚禮上新蟆,老公的妹妹穿的比我還像新娘觅赊。我一直安慰自己,他們只是感情好琼稻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布吮螺。 她就那樣靜靜地躺著,像睡著了一般帕翻。 火紅的嫁衣襯著肌膚如雪鸠补。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天熊咽,我揣著相機(jī)與錄音莫鸭,去河邊找鬼。 笑死横殴,一個(gè)胖子當(dāng)著我的面吹牛被因,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衫仑,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼梨与,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了文狱?” 一聲冷哼從身側(cè)響起粥鞋,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瞄崇,沒想到半個(gè)月后呻粹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壕曼,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年等浊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腮郊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡筹燕,死狀恐怖轧飞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撒踪,我是刑警寧澤过咬,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站制妄,受9級(jí)特大地震影響掸绞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜忍捡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一集漾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧砸脊,春花似錦、人聲如沸纬霞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诗芜。三九已至瞳抓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間伏恐,已是汗流浹背孩哑。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留翠桦,地道東北人横蜒。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像销凑,于是被迫代替她去往敵國(guó)和親丛晌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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

  • 正則表達(dá)式概念源于 《神經(jīng)網(wǎng)事件的表示法》論文中斗幼。 正則表達(dá)式就是用某種模式去匹配一類字符串的一種公式澎蛛。 正則表達(dá)...
    單板小智閱讀 771評(píng)論 0 1
  • 歡迎關(guān)注微信公眾號(hào):全棧工廠 一 正則字符簡(jiǎn)單介紹1.1 元字符介紹"^" :^會(huì)匹配行或者字符串的起始位置,有時(shí)...
    liqingbiubiu閱讀 2,006評(píng)論 0 0
  • 正則表達(dá)式到底是什么東西蜕窿?字符是計(jì)算機(jī)軟件處理文字時(shí)最基本的單位谋逻,可能是字母呆馁,數(shù)字,標(biāo)點(diǎn)符號(hào)毁兆,空格浙滤,換行符,漢字等...
    獅子挽歌閱讀 2,136評(píng)論 0 9
  • 注:本篇文章只為方便查看荧恍,特此保留瓷叫,如有冒犯,敬請(qǐng)諒解K脱病D〔ぁ! 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么骗爆,并對(duì)它...
    阿杰Alex閱讀 1,478評(píng)論 0 10
  • 在學(xué)會(huì)獲取摘投、管理煮寡、分析信息后,需要關(guān)注的就是如何將信息變成自己的知識(shí)犀呼,將信息加工幸撕、整合。將信息轉(zhuǎn)換為自己的知識(shí)的方...
    Emma_Ma閱讀 2,109評(píng)論 6 30