日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python正则表达式--分组、后向引用、前(后)向断言

發布時間:2025/3/21 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python正则表达式--分组、后向引用、前(后)向断言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無名、有名分組

(1)正則表達式—無名分組

從正則表 達式的左邊開始看,看到的第一個左括號“(”表示表示第一個分組,第二個表示第二個分組, 依次類推。

需要注意的是,有一個隱含的全局分組(就是索引號為0的分組),就是整個正則 表達式匹配的結果


(2)正則表達式—有名分組

命名分組就是給具體有默認分組編號的組另外再起一個別名,方便以后的引用。 命令分組的語法格式如下: (?P正則表達式)


語法格式中的字符P必須是大寫的“P”,name是一個合法的標識符,表示分組的別名。



正則表達式—后向引用

當用“()”定義了一個正則表達式分組后,正則引擎就會把匹配的組按照順序進行編號,然后存 入緩存中。這樣我們就可以在后面對已經匹配過的內容進行引用,這就叫后向引用。

(1)通過索引引用

\數字 \1表示引用第一個分組,\2引用第二個分組,以此類推,\n引用第n個組,而\0則表示引用整個 被匹配的正則表達式本身。


交換字符串的位置



(2) (?P=name)通過命名分組名進行引用

(?P=name) 字符P必須是大寫的P,name表示命名分組的分組名


(?P<name>)(?P=name) 引用分組的值匹配值必須與第一個分組匹配值相等才能匹配到

例如:

1)??? 引用前一個分組,前后值相同都是2,故能匹配到



2)??? 引用前一個分組,前后值不相同分別為2和3,故不能匹配到



正則表達式—前后向斷言

(1)前向肯定斷言與后向肯定斷言

1)??? 前向肯定斷言的語法:

(?<=pattern) 前向肯定斷言表示你希望匹配的字符串前面是pattern匹配的內容時,才匹配。

2)??? 后向肯定斷言的語法:

(?=pattern) 后向肯定斷言表示你希望匹配的字符串的后面是pattern匹配的內容時,才匹配


3)前后向斷言同時使用

如果在一次匹配過程中,需要同時用到前向肯定斷言和后向肯定斷 言時,那你必須將前向肯定斷言表達式寫在要匹配的正則表達式的前面,而后向肯定斷言表 達式寫在你要匹配的字符串的后面


(2) 前向否定斷言與后向否定斷言

1) 前向否定斷言的語法:

(?<!pattern) 前向否定斷言表示你希望匹配的字符串的前面不是pattern匹配的內容時,才匹配.

2) 后向否定斷言的語法:

(?!pattern) 后向否定斷言表示你希望匹配的字符串后面不是pattern匹配的內容時,才匹配。


(3)注意

前向肯定(否定)斷言括號中的正則表達式必須是能確定長度的正則表達式,比如\w{3},而不能寫成 \w*或者\w+或者\w?等這種不能確定個數的正則模式符。


轉載于:https://blog.51cto.com/14246112/2388043

總結

以上是生活随笔為你收集整理的python正则表达式--分组、后向引用、前(后)向断言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。