python筆記--正則表達式(1)
時間 2021-01-16
標籤
python
正則表達式
第一個正則表達式:
特殊符號與字符
常見的正則表達式的特殊符號與字符:
創建字符集:
- 怎樣才能匹配句點(dot)或者句號(period)字符?
- 要顯式匹配一個句點符號本身,必須使用反斜線轉義句點符號的功能,例如「.」。
- 儘管句號可以匹配任意符號,但某些時候想要匹配特定的字符,於是可以使用方括號。
- 關於[cr][23][dp][o2]這個正則表達式有一點需要說明:如果僅允許 「r2d2」或者「c3po」 作爲有效字符串,就需要更嚴格限定的正則表達式。因爲方括號僅僅表示邏輯或的功能, 所以使用方括號並不能實現這一限定要求。唯一的方案就是使用擇一匹配,例如, r2d2|c3p 。
限定與否定:
- 方括號中兩個符號中間用連接字符(-)連接,用於指定一個字符的範圍.
- 如果脫字符(^)緊跟在左方括號後面,這個符號就表示不匹配給定字符集中的任何一個字符。
- 使用閉包操作符實現存在性和頻數匹配
- 星號或者星號操作符(*)將匹配其左邊的正則表達式出現零次或者多次的情況(在計算機編程語言和編譯原理中,該操作稱爲Kleene閉包)
- 加號(+)操作符將匹配一次或者多次出現的正則表達式(也叫正閉包操作符)
- 問號(?)操作符將匹配零次或者依次出現的正則表達式
- 大括號({}),裏面或者是單個值,將最終精確地匹配前面的正則表達式 N 次(如果是{N})或者一定範圍的次數。,{M,N}將匹配 M~N 次出現。
- 「儘可能少的次數」是什麼意思?當模式匹配使用分組操作符時,正則表達式引擎將試圖 「吸收」匹配該模式的儘可能多的字符。這通常被叫做貪婪匹配。
- 使用圓括號指定分組 :
- 目的:
- 匹配模式的子字符串可以保存起來供後續使用。 這些子組能夠被同一次的匹配或者搜索重複調用,或者提取出來用於後續處理。
- 對正則表達式進行分組;
- 匹配子組。