正則表達(dá)式

導(dǎo)語

正則表達(dá)式的作用:

  • 測試字符串內(nèi)的模式
  • 替換文本
  • 基于模式匹配從字符串中提取子字符串

語法

正則表達(dá)式的各組成部分可以是單個字符啡邑、字符集辱志、字符范圍或在幾個字符之間選擇撤防。 也可以是這些組成部分的任意組合番枚。

寫完第一步是需要測試的涌庭,這里提供一個在線測試網(wǎng)站RegexPlaner

以下是個人常用的(具體的看官方文檔)

  1. 通過在一對分隔符之間放置表達(dá)式的各種組成部分审轮,就可以構(gòu)建正則表達(dá)式
    /expression/
  2. 最簡單的正則表達(dá)式是與搜索字符串相比較的單個普通字符肥哎。 例如,單字符正則表達(dá)式 A 會始終匹配字母 A疾渣,無論其會出現(xiàn)在搜索字符串的哪個位置篡诽。
    /A/
    /a/
    /123/
  3. 元字符
  • .:匹配除換行符以外的任意字符
  • \w:匹配字母或數(shù)字或下劃線或漢字
  • \s:匹配任意的空白符
  • \d:匹配任意數(shù)字
  • \b:匹配單詞的開始和結(jié)束
  • ^:字符串的開始
  • ¥:字符串的結(jié)束
  • 當(dāng)然如果你字符串中本來就有這些符號,就可以使用\來進(jìn)行轉(zhuǎn)義.榴捡,如*就應(yīng)該寫成
    E.G:
    \ba\w*\b匹配以字母a開頭的單詞——先是某個單詞開始處(\b)杈女,然后是字母a,然后是任意數(shù)量的字母或數(shù)字(\w),最后是單詞結(jié)束處(\b)吊圾。
    \d+匹配1個或更多連續(xù)的數(shù)字达椰。這里的+是和
    類似的元字符,不同的是*匹配重復(fù)任意次(可能是0次)项乒,而+則匹配重復(fù)1次或更多次啰劲。
    元字符^(和數(shù)字6在同一個鍵位上的符號)和$都匹配一個位置,這和\b有點類似檀何。^匹配你要用來查找的字符串的開頭蝇裤,$匹配結(jié)尾。比如一個網(wǎng)站如果要求你填寫的QQ號必須為5位到12位數(shù)字時频鉴,可以使用:^\d{5,12}$
  1. 限定符
  • *:匹配零次或多次前面的字符或子表達(dá)式
  • +: 匹配一次或多次前面的字符或子表達(dá)式
  • `?:匹配零次或一次
  • {n}: 匹配N次
  • {n,}: 匹配N或更多次
  • {n,m}: 匹配N到M次
    E.G: Linux\d+:匹配Linux之后跟的一個或多個數(shù)字
  1. 字符類
    如果你想匹配沒有預(yù)定義元字符的字符集合(比如元音字母a,e,i,o,u),你只需要在方括號里列出它們就行了栓辜,像[aeiou]就匹配任何一個英文元音字母,[.?!]匹配標(biāo)點符號(.或?或!)垛孔。
  • [a-z]&[A-Z]:匹配任意一個小寫字母&大寫字母
    E.G:
    /(?0\d{2}[) -]?\d{8}:就可以匹配(010)88886666藕甩,或022-22334455,或02912345678之類的似炎。首先使用\對(進(jìn)行轉(zhuǎn)義辛萍,然后匹配一個或沒有0,再接著兩個數(shù)字羡藐,[)-]則匹配一次) or -這兩個符號贩毕,最后再加上\d{8}匹配八位數(shù)字
  1. 反義
    有時需要查找不屬于某個能簡單定義的字符類的字符。比如想查找除了數(shù)字以外仆嗦,其它任意字符都行的情況辉阶,這時需要用到反義。
  • \W:匹配任意不是字母,數(shù)字谆甜,下劃線垃僚,漢字的字符
  • \S:匹配任意不是空白符的字符
    ...
    *[^z]:匹配除了z以外的任意字符
  1. 分支條件 .
    正則表達(dá)式里的分枝條件指的是有幾種規(guī)則,如果滿足其中任意一種規(guī)則都應(yīng)該當(dāng)成匹配规辱,具體方法是用|把不同的規(guī)則分隔開谆棺。
    E.G:
  • 0\d{2}-\d{8}|0\d{3}-\d{7}這個表達(dá)式能匹配兩種以連字號分隔的電話號碼:一種是三位區(qū)號,8位本地號(如010-12345678)罕袋,一種是4位區(qū)號改淑,7位本地號(0376-2233445)
  • \d{5}-\d{4}|\d{5}這個表達(dá)式用于匹配美國的郵政編碼。美國郵編的規(guī)則是5位數(shù)字浴讯,或者用連字號間隔的9位數(shù)字朵夏。之所以要給出這個例子是因為它能說明一個問題:使用分枝條件時,要注意各個條件的順序榆纽。如果你把它改成\d{5}|\d{5}-\d{4}的話仰猖,那么就只會匹配5位的郵編(以及9位郵編的前5位)。原因是匹配分枝條件時奈籽,將會從左到右地測試每個條件饥侵,如果滿足了某個分枝的話,就不會去再管其它的條件了衣屏。
  1. 分組
    前面我們看到單個字符數(shù)字等可以重復(fù)爆捞,其實多個也是可以的,這就需要使用分組啦
    E.G:
    ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?):匹配IP地址勾拉,自己領(lǐng)會~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末突琳,一起剝皮案震驚了整個濱河市噩死,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亿遂,老刑警劉巖卖局,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斧蜕,死亡現(xiàn)場離奇詭異,居然都是意外死亡砚偶,警方通過查閱死者的電腦和手機(jī)批销,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來染坯,“玉大人均芽,你說我怎么就攤上這事〉ヂ梗” “怎么了掀宋?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我劲妙,道長湃鹊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任镣奋,我火速辦了婚禮币呵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘侨颈。我一直安慰自己余赢,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布肛搬。 她就那樣靜靜地躺著没佑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪温赔。 梳的紋絲不亂的頭發(fā)上蛤奢,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音陶贼,去河邊找鬼啤贩。 笑死,一個胖子當(dāng)著我的面吹牛拜秧,可吹牛的內(nèi)容都是我干的痹屹。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼枉氮,長吁一口氣:“原來是場噩夢啊……” “哼志衍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聊替,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤楼肪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后惹悄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體春叫,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年泣港,在試婚紗的時候發(fā)現(xiàn)自己被綠了暂殖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡当纱,死狀恐怖呛每,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情坡氯,我是刑警寧澤莉给,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布毙石,位于F島的核電站,受9級特大地震影響颓遏,放射性物質(zhì)發(fā)生泄漏徐矩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一叁幢、第九天 我趴在偏房一處隱蔽的房頂上張望滤灯。 院中可真熱鬧,春花似錦曼玩、人聲如沸鳞骤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽豫尽。三九已至,卻和暖如春顷帖,著一層夾襖步出監(jiān)牢的瞬間美旧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工贬墩, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留榴嗅,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓陶舞,卻偏偏與公主長得像嗽测,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子肿孵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

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

  • 正則表達(dá)式到底是什么東西唠粥?字符是計算機(jī)軟件處理文字時最基本的單位,可能是字母停做,數(shù)字厅贪,標(biāo)點符號,空格雅宾,換行符,漢字等...
    獅子挽歌閱讀 2,147評論 0 9
  • 推薦幾個正則表達(dá)式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:...
    木易林1閱讀 11,491評論 9 151
  • 初衷:看了很多視頻葵硕、文章眉抬,最后卻通通忘記了,別人的知識依舊是別人的懈凹,自己卻什么都沒獲得蜀变。此系列文章旨在加深自己的印...
    DCbryant閱讀 4,009評論 0 20
  • 幾個正則表達(dá)式編輯器 Debuggex :https://www.debuggex.com/ PyRegex:ht...
  • 注:本篇文章只為方便查看,特此保留介评,如有冒犯库北,敬請諒解E澜ⅰ!寒瓦! 本文目標(biāo) 30分鐘內(nèi)讓你明白正則表達(dá)式是什么情屹,并對它...
    阿杰Alex閱讀 1,483評論 0 10