最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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個人學習筆記 正則表達式(一)的評論 (共 條)

分享到微博請遵守國家法律
梅州市| 南华县| 孟村| 休宁县| 资阳市| 昆明市| 灌阳县| 广州市| 修武县| 平舆县| 浦江县| 化德县| 库伦旗| 武冈市| 庆云县| 观塘区| 洪江市| 福安市| 河津市| 桦南县| 天峻县| 肇州县| 安多县| 德安县| 呼伦贝尔市| 衡山县| 集贤县| 合江县| 乡宁县| 韶山市| 自贡市| 堆龙德庆县| 田阳县| 阿拉善盟| 扎赉特旗| 宁晋县| 青阳县| 石嘴山市| 宜宾市| 定西市| 越西县|