功能 | 正則 | 示例 |
---|---|---|
保存子組 | (正則) | \d{15}(\d{3})? |
不保存子組 | (?:正則) | \d{15}(?:\d{3})? |
我們之前講過的 IPv4 正則表示就可以優(yōu)化下:
上面講完了分組,我們來看下如何來引用分組,大部分語言都是用 反斜杠 + 編號 的方式,個(gè)別的比如 JavaScript語言,使用的是 美元符號 + 編號 的方式:
編程語言 | 查找時(shí)引用方式 | 替換時(shí)引用方式 |
---|---|---|
Python | \number 如 \1 | \number 如 \1 |
Go | 官方包不支持 | 官方包不支持 |
Java | \number 如 \1 | $number 如 $1 |
JavaScript | $number 如 $1 | $number 如 $1 |
PHP | \number 如 \1 | \number 如 \1 |
Ruby | \number 如 \1 | \number 如 \1 |
到這里我們已經(jīng)學(xué)完了分組與引用的知識,一起來實(shí)踐下,有這樣一個(gè)需求,在一個(gè)目標(biāo)字符串中,查找兩個(gè)重復(fù)出現(xiàn)的單詞。
還沒有學(xué)到單詞邊界,我們先用 \w{2,} 來表示出現(xiàn)的單詞,重復(fù)的單詞就是 (\w{2,} \1),看下結(jié)果:
上面的內(nèi)容,我們講到了日期的分組,來替換下:
對應(yīng)的 Python 代碼如下:
import re test_str = "2021-06-01 13:14:21" regex = r"((\d{4})-(\d{2})-(\d{2})) ((\d{2}):(\d{2}):(\d{2}))" subst = r"\2年\3月\4日 \6時(shí)\7分\8秒" result = re.sub(regex, subst, test_str) print(result) 輸出:2021年06月01日 13時(shí)14分21秒
正則表達(dá)式不僅可以在代碼中使用,在文本編輯器中也是比較常用的,以 Sublime Text 3 舉例來講下正則的查找與替換,學(xué)完之后,會讓你的工作事半功倍。
點(diǎn)擊 Find -> Find 選項(xiàng),或者使用快捷鍵 Ctrl + F 可以喚起查找功能:
點(diǎn)擊 Find -> Replace 選項(xiàng),或者使用快捷鍵 Ctrl + H 可以喚起替換功能:
我們來實(shí)現(xiàn)一個(gè)查找郵箱的功能,此處的郵件正則只是簡單演示使用,當(dāng)點(diǎn)擊 Find All 按鈕后,可以看到郵箱都被找到了,此時(shí)如果點(diǎn)擊 Ctrl + C 復(fù)制,可以把找到的郵箱單獨(dú)粘貼出來:
演示下我們上面講過的替換例子:
怎么樣,是不是很方便,幾乎所有的主流編輯器都是支持正則的,學(xué)會了正則,對我們的工作幫助還是挺大的。
最后在總結(jié)下上面講到的內(nèi)容:
正則表達(dá)式在線校驗(yàn)工具:https://regex101.com/
到此這篇關(guān)于正則表達(dá)式分組與引用的使用的文章就介紹到這了,更多相關(guān)正則表達(dá)式 分組與引用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:駐馬店 黑河 欽州 南昌 中衛(wèi) 臨夏 阜陽 延邊
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式分組與引用的使用》,本文關(guān)鍵詞 正則,表達(dá)式,分組,與,引,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。