在python中使用常用的正則

2021-10-08 18:11:46 字數 1911 閱讀 4355

正規表示式描述了一種字串匹配的模式,我們在進行文字匹配時經常會用到,下面介紹常用語法。

非列印字元就是指換行等不可以列印出來的字元。

字元作用

\cx匹配由x指明的控制字元。例如, \cm 匹配乙個 control-m 或回車符。x 的值必須為 a-z 或 a-z 之一。否則,將 c 視為乙個原義的 『c』 字元。

\f匹配乙個換頁符。。

\n匹配乙個換行符。

\r匹配乙個回車符

\s匹配任何空白字元,包括空格、製表符、換頁符等等。等價於 [ \f\n\r\t\v]。注意 unicode 正規表示式會匹配全形空格符。

\s匹配任何非空白字元。等價於 [^ \f\n\r\t\v]。

\t匹配乙個製表符。

\v匹配乙個垂直製表符

\d匹配乙個數字

\d匹配乙個非數字

常用到的有[\s\s]*,匹配任意多個字元

所謂特殊字元,就是一些有特殊含義的字元,如上面說的 runoo*b 中的 ,簡單的說就是表示任何字串的意思。如果要查詢字串中的 * 符號,則需要對 * 進行轉義,即在其前加乙個 : runo*ob 匹配 runoob。

許多元字元要求在試圖匹配它們時特別對待。若要匹配這些特殊字元,必須首先使字元"轉義",即,將反斜槓字元\ 放在它們前面。下表列出了正規表示式中的特殊字元:

字元作用

$匹配輸入字串的結尾位置。如果設定了 regexp 物件的 multiline 屬性,則 $ 也匹配 『\n』 或 『\r』。要匹配 $ 字元本身,請使用 $。

( )標記乙個子表示式的開始和結束位置。子表示式可以獲取供以後使用。要匹配這些字元,請使用 ( 和 )。

*匹配前面的子表示式零次或多次。要匹配 * 字元,請使用 *。

+匹配前面的子表示式一次或多次。要匹配 + 字元,請使用 +。

.匹配除換行符 \n 之外的任何單字元。要匹配 . ,請使用 . 。

[標記乙個中括號表示式的開始。要匹配 [,請使用 [。

?匹配前面的子表示式零次或一次,或指明乙個非貪婪限定符。要匹配 ? 字元,請使用 ?。

\將下乙個字元標記為或特殊字元、或原義字元、或向後引用、或八進位制轉義符。例如, 『n』 匹配字元 『n』。』\n』 匹配換行符。序列 『\』 匹配 「」,而 『(』 則匹配 「(」。

^匹配輸入字串的開始位置,除非在方括號表示式中使用,當該符號在方括號表示式中使用時,表示不接受該方括號表示式中的字元集合。要匹配 ^ 字元本身,請使用 ^。

或 或 共6種。

正規表示式的限定符有:

字元作用

*匹配前面的子表示式零次或多次。例如,zo* 能匹配 「z」 以及 「zoo」。* 等價於。

+匹配前面的子表示式一次或多次。例如,『zo+』 能匹配 「zo」 以及 「zoo」,但不能匹配 「z」。+ 等價於 。

?匹配前面的子表示式零次或一次。例如,「do(es)?」 可以匹配 「do」 、 「does」 中的 「does」 、 「doxy」 中的 「do」 。? 等價於 。

n 是乙個非負整數。匹配確定的 n 次。例如,『o』 不能匹配 「bob」 中的 『o』,但是能匹配 「food」 中的兩個 o。

n 是乙個非負整數。至少匹配n 次。例如,『o』 不能匹配 「bob」 中的 『o』,但能匹配 「foooood」 中的所有 o。『o』 等價於 『o+』。『o』 則等價於 『o*』。

m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,「o」 將匹配 「fooooood」 中的前三個 o。『o』 等價於 『o?』。請注意在逗號和兩個數之間不能有空格。

常用的有[0-9]* 表示任意多個數字

在python中通過內建的re庫來使用正規表示式,它提供了所有正規表示式的功能

re模組的使用和語法

詳細使用方法請看正規表示式 - 語法和在python中使用正規表示式(一)

在python中使用websocket

介紹一款很帥的外掛程式autobahnpython,通過它可以在python中很方便的使用websocket進行通訊 基於twisted框架 這個外掛程式真正強大的地方是它提供了乙個 發布 訂閱模式,具體內容有空再寫,先簡單介紹一下如何建立傳統的連線。建立伺服器 必須的模組 from twisted...

在Python中使用 slots

這篇文章主要介紹了在python中使用 slots 方法的詳細教程,slots 方法是python的乙個重要內建類方法,基於python2.x版本,需要的朋友可以參考下 正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...

with語句在Python中使用

引言 with語句生於python2.5,通過 from future import with statement 匯入後使用 2.6以後無需匯入直接使用 with 語句適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的 清理 操作,釋放資源 用途 最常用的兩個地方,檔案使用後...