python 正規表示式 re模組學習

2022-01-14 18:49:21 字數 1754 閱讀 6405

正規表示式是一種用來匹配字串的一種強大的**,用一種描述性語言給字串定乙個規則,凡是符合規則的字串,我們就認為匹配了,否則,該字串就是不合法的。

因為正規表示式也是用字元表示的,所以,我們首先了解如何用字元來描述字元。

在正規表示式中,如果直接給出字元,就是精確匹配,

\d :匹配乙個數字;

『009\d』可以匹配『0098』,無法匹配『009a』

\w:匹配乙個字母或者數字;

『\w\w\d』可以匹配『py3』

. :可以匹配任意字元;

『py.』可以匹配『py3』,'py@','pyi'

* :匹配任意個字元(包括0個)

+:表示至少乙個字元;

?:表示0個或者1個字元;

:表示n-m個字元。

\d  表示可以匹配3個數字,比如『012』

\s 可以匹配乙個空格(課包括tab等空白符),所以\s+ 表示至少有乙個空格,可以匹配『 』,『  』。

\d表示3-8個數字,such as :'98765'

以上所得只是可以用正規表示式匹配帶空格的帶區號的**號碼。

如果帶特殊字元,則需要用「\」轉義。

要做到更精確的匹配,可以用來表示範圍:

· [0-9a-za-z\_] 可以匹配乙個數字、字母或者下劃線;

· [0-9a-za-z\_]+ 可以匹配至少由乙個數字、字母或者下劃線組成的字串,例如『009』,『_0ih』,'45ty';

· [a-za-z\_][0-9a-za-z\_]* 可以匹配由字母或者下劃線開頭,後面接任意個由乙個數字、字母或者下劃線組成的字串(python的合法變數);

· [a-za-z\_][0-9a-za-z\_] 更加確認了該變數的長度(1-20個字元),前面乙個字元加上後面最多19個字元組成的字串。

a|b 可以匹配a或者b ,(p|p)ython 可以匹配python ,也可以匹配python;

^ 可以表示行數的開頭;

^\d 表示必須要以數字開頭;

$ 表示行數的結束;

\d$ 表述要以數字結束;

pps:

^py$ 變成了整行匹配,只能匹配到py

python提供re模組,包含了所有正規表示式的功能,由於python 本身也是用\來進行轉義,所以要特別注意:

s=『abc\\-001』 -->'abc\-001'

建議使用『r』字首,就不用考慮轉義的問題了。

除了簡單的判斷是否匹配之外,正規表示式還有提取大量字串的功能,用()表示的就是提取的分組group.

看例子:

注意到group(0)是原始字串,group(1),group(2)是第乙個,第二個子串。

試著完成了廖雪峰正則下面的兩道練習

python正規表示式re模組

嗯 看看就好 小白可能會坑人 有錯誤的話麻煩指出來謝謝 2018年3月15日13 54 11 re 模組 函式與方法的區別 如果是乙個函式,用類名去呼叫,如果是乙個方法,用物件去呼叫 1.compile函式 編 print n1 10 n import re pattern re.compile r...

Python 正規表示式 re模組

在python中,需要用到正規表示式時,就需要匯入re模組進行操作,們可以直接呼叫來實現正則匹配 普通字元 匹配自身 abcabc 匹配任意除換行符 n 外的字元 在dotall模式中也能匹配換行符 a.cabc 轉義字元,使後乙個字元改變原來的意思 a.c a c a.c a c 匹配前乙個字元0...

re模組 正規表示式 python

d 匹配數字 w 匹配字母或數字 s 匹配乙個空格 包括tab s 表示至少乙個空格 表示任意字元 包括零個 表示至少乙個字元 表示0個或1個字元 表示n個字元 表示n m個字元 可以匹配任意字元 a b 表示可以匹配a或b 行的開頭 d 表示必須以數字開頭 表示結尾 d 表示必須以數字結尾 r 字...