正規表示式匹配符介紹 python

2021-10-20 04:25:21 字數 4067 閱讀 7754

字元

解釋x字元x可代表任意合法的字元

\uhhhh十六進製制值0xhhhh表示的unicode字元

\t製表符(\u0009)

\n換行符(\u000a)

\r回車符(\u000d)

\f換頁符(\u000c)

\a報警(bell)符(\u0007)

\eescape符(\u001b)

\cxx對應的控制符。例如,\cm匹配ctrl+mx必須是a-za-z之一

$匹配字串的結尾。如果要匹配$字元本身,要使用\$

^匹配字串的開頭。如果要匹配^字元本身,要使用\^

.能夠匹配除換行符 \n 以外的任意單個字元。

\w與單個字母數字字元匹配。

\w與單個非字母數字字元匹配。

\d與單個數字匹配。

\d與單個非數字匹配。

\s與單個空白字元(空格,換行符,返回符,製表符,**)匹配。

\s與任何非空格字元匹配。

()被括起來的表示式部分將作為分組,並返回相匹配的文字。

[..]匹配方括號中..表達的字元。

[^..]匹配方括號中..表達以外的任何字元。比如,\u4e00-\u9fa5表示所有中文字元,[^\u4e00-\u9fa5]就可以表示匹配所有非中文本元。

.*[/]$匹配以/結尾的字串。

.*[^/]$匹配不以/結尾的字串。

匹配前乙個字元的出現次數在 m 至 n 次之間。

a|b匹配 a 或 b。

?匹配前乙個字元出現次數0 或 1

+模式前乙個字元出現1 次或多次

*模式前乙個字元出現0 次或多次

\轉義字元,通常用於將一些被占用成為正則表達的符號還原為原來的意思,比如\+表示加號。

python中,re是乙個專業的正規表示式模組,以下是該模組中常用的幾個函式:

函式名描述

re.compile(pattern, flags=0)編譯正規表示式模式,返回pattern物件。

re.search(pattern, string, flags=0):掃瞄整個字串,並返回字串中第一處匹配pattern匹配物件,如果未找到匹配項,則返回none

re.match(pattern, string, flags=0)嘗試從字串的開始位置來匹配正規表示式,返回匹配物件,如果沒有找到匹配,則返回none

re.findall(pattern, string, flags=0)掃瞄整個字串,並返回字串中所有匹配pattern的子串組成的列表

re.finditer(pattern, string, flags=0)掃瞄整個字串,並返回字串中所有匹配pattern的子串組成的迭代器

re.fullmatch(pattern, string, flags=0)要求整個字串能匹配pattern,並返回匹配物件,如果未找到匹配,則返回none

re.sub(pattern, repl, string, count=0, flags=0)string字串中所有匹配pattern的內 容替換成replcount引數控制最多替換多少次,預設全部替換

re.split(pattern, string, maxsplit=0, flags=0)使用patternstring進行分割,返回分割得到的子串組成的列表,maxsplit引數控制最多分割幾次

re.purge()清除正規表示式快取

re.escape(pattern)pattern中除ascii字元、數值、下劃線之外的其他字元進行轉義

````

````

re模組中常用的有兩種物件:

在python中使用正規表示式,首先需要載入re模組包:

import re
text_pattern =

"[\u4e00-\u9fa5]*"

text_p = re.

compile

(text_pattern)

text_r = text_p.findall(

"張三住在123號小區。"

)text_r

結果:

[

'張三住在',''

,'',''

,'號小區',''

,'']

text_pattern =

"[^\u4e00-\u9fa5]*"

text_p = re.

compile

(text_pattern)

text_r = text_p.findall(

"張三住在123號小區。"

)text_r

結果:

['',

'','',

'','123',''

,'',''

,'。',''

]

pattern =

"(.*?)"

#中文括號

re.sub(pattern,"",

"張三(法外狂徒)住在123號小區。"

)

結果:

'張三住在123號小區。'
pattern =

"\(.*?\)"

#英文括號

re.sub(pattern,"",

"張三(法外狂徒)住在123號小區。"

)

結果:

'張三住在123號小區。'

正規表示式 匹配

字串 void abtr quint32 ab 表示乙個正規表示式 template class bidirectionaliterator class allocator std allocator sub match bidirectionaliterator class match resul...

正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 解法 首先要想到用遞迴處理...

正規表示式匹配

請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a 匹配,但是與 aa.a 和 ab a 均不匹配 class solutio...