好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 正則表達式分組與引用的使用

正則表達式分組與引用的使用

熱門標簽:襄陽房產電銷機器人招商 安徽移動外呼系統 深圳400電話辦理那家好 百度地圖標注名編輯 施工地圖標注怎么做 怎么在高德地圖標注行走軌跡 清遠陽山400電話號碼如何申請 百度地圖標注飯店位置怎么 個性化地圖標注在線

0.寫在前面

今天我們來講下正則中的分組與引用,其實在第一篇文章中,我們在實戰環節就已經用到分組這個功能了,回顧下 IPv4 地址的正則表達式:

復制代碼 代碼如下:

^([1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.(0|[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

可以簡寫下:

復制代碼 代碼如下:

^(條件1)(\.(條件2)){3}$

可以看到在表達式中出現了幾對括號,為什么要用括號把表達式括起來,這些括號有什么作用呢,我們一起來看下。

1.分組與編號

括號在正則中可以用于分組,被括號括起來的部分可以稱為子表達式,會被保存成一個子組。

舉個栗子,有一個日期時間 2021-06-01 13:14:21,我們想要提取出其中的日期和時間,就要用括號對日期和時間進行分組,如下圖所示:

可以看到圖中有兩個分組,日期分組是第1個,時間分組是第2個,我們以左括號的位置,來表示分組的標號,從1開始,第幾個左括號,就是第幾個分組。

上面的栗子,我們再分的細一點,我們要分別提取其中的年、月、日,時、分、秒,如下圖所示:

可以看到日期的分組編號是 1,時間分組的編號是 5,年月日的分組編號分別是 2,3,4,時分秒的分組編號分別是 6,7,8。

2.不保存子組

分組是有一定的性能消耗的,在有些情況下,我們只是單純的想要分組,后續并不想使用它,就可以在左括號的后面加上 ?: 表示不保存子組。

比如,需要是使用正則匹配目標字符串中的15位或18位數字:

功能 正則 示例
保存子組 (正則) \d{15}(\d{3})?
不保存子組 (?:正則) \d{15}(?:\d{3})?

我們之前講過的 IPv4 正則表示就可以優化下:

復制代碼 代碼如下:

^(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(?:\.(?:0|[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

3.分組引用

上面講完了分組,我們來看下如何來引用分組,大部分語言都是用 反斜杠 + 編號 的方式,個別的比如 JavaScript語言,使用的是 美元符號 + 編號 的方式:

編程語言 查找時引用方式 替換時引用方式
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

4.查找與替換

 查找

到這里我們已經學完了分組與引用的知識,一起來實踐下,有這樣一個需求,在一個目標字符串中,查找兩個重復出現的單詞。

還沒有學到單詞邊界,我們先用 \w{2,} 來表示出現的單詞,重復的單詞就是 (\w{2,} \1),看下結果:

替換

上面的內容,我們講到了日期的分組,來替換下:

對應的 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時\7分\8秒"
result = re.sub(regex, subst, test_str)
print(result)

輸出:2021年06月01日 13時14分21秒

5.在文本編輯器中使用

正則表達式不僅可以在代碼中使用,在文本編輯器中也是比較常用的,以 Sublime Text 3 舉例來講下正則的查找與替換,學完之后,會讓你的工作事半功倍。

點擊 Find -> Find 選項,或者使用快捷鍵 Ctrl + F 可以喚起查找功能:

點擊 Find -> Replace 選項,或者使用快捷鍵 Ctrl + H 可以喚起替換功能:

查找

我們來實現一個查找郵箱的功能,此處的郵件正則只是簡單演示使用,當點擊 Find All 按鈕后,可以看到郵箱都被找到了,此時如果點擊 Ctrl + C 復制,可以把找到的郵箱單獨粘貼出來:

替換

演示下我們上面講過的替換例子:

怎么樣,是不是很方便,幾乎所有的主流編輯器都是支持正則的,學會了正則,對我們的工作幫助還是挺大的。

6.寫在最后

最后在總結下上面講到的內容:

正則表達式在線校驗工具:https://regex101.com/

到此這篇關于正則表達式分組與引用的使用的文章就介紹到這了,更多相關正則表達式 分組與引用內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 十分鐘上手正則表達式 上篇
  • 正則表達式常見的4種匹配模式小結
  • 正則表達式量詞與貪婪的使用詳解
  • 正則表達式那些讓人頭暈的元字符
  • 正則表達式之分組的回溯引用問題
  • 十分鐘上手正則表達式 下篇

標簽:駐馬店 黑河 欽州 南昌 中衛 臨夏 阜陽 延邊

巨人網絡通訊聲明:本文標題《正則表達式分組與引用的使用》,本文關鍵詞  正則,表達式,分組,與,引,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《正則表達式分組與引用的使用》相關的同類信息!
  • 本頁收集關于正則表達式分組與引用的使用的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国精产品一区一区三区软件优势 | 绿帽娇妻肚子被灌满精怀孕| 亚洲第一区的| 2020天天狠天天透天干天天怕| 一级黄色网址| 在线观看资源| 久久偷看各类wc女厕精品| 啦啦啦资源在线观看6| 亚洲情综合五月天婷婷丁香| 高清性爱视频| 涞源县| 国产欧美一线二线三线| 亚洲人成电影在线观看天堂色| 91视频一88av| 日本按摩xxxx| 国产高清成人吃奶成免费视频| 小骚包娇喘抽搐喷潮h动态图图片| 日韩精选视频| 浪荡女和野男人h| 沟厕白嫩大屁股国产盗摄| 公车上雪柔被猛烈进出动态图| a级毛片基地| 欧美猛交喷潮在线播放| 国产天美| 国产精品女人A片爽爽视频吃奶| 国产亚洲精品久久久波多野结衣| 国产精品福利资源在线| 想让男人操| 娇妻丰满的奶水| 男女差差视频| 2020久久精品国产免费| 蜜桃aⅴ色欲A片无码精品接吻| 女人毛片A毛片久久人人爱| www.1313nn.com| 天天干天天干天天| 国产羞羞视频在线观看| 毛片子| 欧美 日韩 一区二区三区| 扒开学生双腿猛进入喷水男男| 揉同桌的双乳下面湿透了| 欧美最新cum4k|