五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Python個人學習筆記 正則表達式(一)

2023-04-16 14:36 作者:ベレッタ  | 我要投稿

正則表達式的組成

①元字符

元字符一次只能匹配一個字符。

特殊元字符:

⑴ .

點運算符??梢云ヅ涑龘Q行符外任意一個字符。若啟用DOTALL標志,則也可以匹配換行符。


⑵ ^

插入符號??梢云ヅ渥址拈_頭。若啟用MULTILINE標志,則也可以匹配行的開頭。


⑶ \A

可以匹配字符串的開頭。但沒有多行模式。


⑷ $

可以匹配字符串的結(jié)尾。若啟用MULTILINE標志,則也可以匹配行的結(jié)尾。


⑸ \b

匹配詞邊界。

要匹配的詞后面不能再跟其他字母。


⑹ \B

匹配非詞邊界。

和\b相反。


⑺ \d

匹配任意數(shù)字字符。若啟用UNICODE標志,則還能匹配更廣泛的 Unicode 數(shù)字字符。


⑻ \D

匹配任意非數(shù)字字符。


⑼ \s

匹配任意空白字符。


⑽ \S

匹配任意非空白字符。


⑾ \w

匹配任意字母、數(shù)字或下劃線。


⑿ \W

匹配任意非字母、數(shù)字或下劃線。


②字符集

可以匹配字符集中的任意一個字符。用[]創(chuàng)建字符集。

減號(-)若出現(xiàn)在字符集內(nèi)的2個字符之間,則表示2個字符范圍內(nèi)的字符;

????????????????若出現(xiàn)在字符集的開頭或結(jié)尾,則表示減號這個符號。

中括號表示字符集,如果想匹配中括號,最好加 \ 來轉(zhuǎn)義。

雖然不加也能匹配,但有時候會出錯。

^表示不在字符集內(nèi)的任意字符。


③表達式量詞

可以和各單個字符組合。

⑴ *

匹配0次或多次。


⑵ +

匹配1次或多次。


⑶ ?

匹配0次或1次。


⑷ |

或運算符。

▲注意,或運算符的優(yōu)先級非常低。


⑸ {}

{n}

精確匹配n次。


{m,n}

匹配[m,n]次。


{,n}

至多匹配n次。


{n,}

至少匹配n次。


⑹ ()

將括號內(nèi)的所有字符視為一個組,與其他量詞組合會作用于整個組。


⑺ \n

匹配到的第n個捕獲組。

\0表示匹配到的整個字符串。


④組

用小括號將小表達式組成大表達式。



Match對象

match()函數(shù)和search()函數(shù)匹配成功會返回一個Match對象,匹配失敗則返回None。


Match對象的用法

用括號給正則表達式模式分組,Match對象可以確定每個組中子表達式匹配到的文本。

⑴?lastindex

返回匹配到的文本組的數(shù)量。

4組括號,所以輸出為4。

⑵?group()

返回指定組匹配到的文本。默認值為0,返回整個正則表達式匹配到的文本。


⑶ groups()

返回一個包含所有組的元組。


⑷?groupdict()

返回所有已命名組組成的字典。

未命名的組就不會被輸出。


⑸?start() / end()

返回指定組匹配到的文本在字符串中的開始/結(jié)束位置。(左閉右開區(qū)間)


⑹ span()

返回指定組匹配到的文本在字符串中的開始和結(jié)束的位置。


正則表達式功能標志

匹配函數(shù)的第三個參數(shù)。

⑴?re.ASCII / re.A

限制匹配規(guī)則為 ASCII 字符集。啟用后,\w、\W、\b、\B、\d、\D、\s 和 \S 等特殊字符將僅匹配 ASCII 字符集中的對應字符。


⑵?re.IGNORECASE / re.I

不區(qū)分大小寫。


⑶?re.LOCALE / re.L

使用數(shù)字字符、單詞邊界、數(shù)字匹配時遵循當前的本地化設置。


⑷?re.MULTILINE / re.M

多行模式。使用^和$匹配行首和行尾以及字符串的開頭和結(jié)尾。


⑸?re.DOTALL / re.S

使用點運算符.匹配所有字符,包括換行符\n。


⑹ re.UNICODE / re.U

#使用UNICODE格式匹配字母數(shù)字字符、單詞邊界和數(shù)字。


⑺?re.VERBOSE / re.X

冗長模式。會忽略空格和換行(除非是正則表達式的一部分),可以在正則表達式中加注釋,便于理解。

去掉 re.X 將會輸出False。


⑻?re.DEBUG

在IDLE中執(zhí)行操作時將輸出編譯后的正則表達式的調(diào)試信息。



匹配小技巧

⑴?compile()

參數(shù)為正則表達式,編譯為一個正則表達式對象,方便重復使用。


⑵?fullmatch() / $

完全匹配。

當用match()函數(shù)的時候,只要開頭匹配到了,就會算是匹配成功。

但是字符串中含有空格,并不是完全匹配的,會與預期不符。這時候可以在表達式結(jié)尾加$或者用fullmatch()函數(shù),只有完全匹配才會返回Match對象。


⑶ \number

指定組。

上面的例子中,有兩個組 (\w+)和([a-z]+),\2則表示第二組。?

(\w+)匹配到ngm,([a-z]+)匹配到hhay。

\n會記錄第n組所匹配到的內(nèi)容,所以這個\2就表示hhay。

所以下面的會返回True。


\n可以用于sub()函數(shù)替換文本中重復的內(nèi)容等功能。


Python個人學習筆記 正則表達式(一)的評論 (共 條)

分享到微博請遵守國家法律
哈尔滨市| 新和县| 章丘市| 萨迦县| 额济纳旗| 鲁甸县| 大姚县| 绥江县| 惠水县| 湄潭县| 梧州市| 卫辉市| 永春县| 洪雅县| 贵溪市| 四会市| 台前县| 颍上县| 长沙市| 常熟市| 改则县| 垦利县| 会理县| 南京市| 祁阳县| 桐城市| 奉新县| 商河县| 龙里县| 白沙| 新蔡县| 和硕县| 靖安县| 罗定市| 鸡泽县| 南雄市| 布尔津县| 嘉兴市| 安平县| 新野县| 岚皋县|