Python day8 正規表示式

2021-08-20 14:22:15 字數 2097 閱讀 6802

python

php正規表示式

\d :匹配乙個數字字元,還可以使用[0-9]

\d :匹配乙個非數字字元,還可以使用[^0-9]

\w :匹配包括下劃線的任何單詞字元,還可以使用[0-9a-za-z_]

\w :匹配任何非單詞字元,還可以使用[^\w]

\s :匹配任何空白字元,space縮寫

\s :匹配任何非空白字元,還可以使用[^\s]

. :匹配除 "\n" 之外的任何單個字元

[\u4e00-\u9fa5] :匹配中文字元中的任一字元

* :匹配前面的子表示式零次或多次,0到多,

+ :匹配前面的子表示式一次或多次,1到多,

? :匹配前面的子表示式零次或一次,0或1,

:匹配確定的n 次

:至少匹配n 次

:最少匹配

n 次且最多匹配m 次

^ :匹配輸入字串的開始位置

$ :匹配輸入字串的結束位置

[a-z] :匹配字元a到字元z之間的任一字元

[a-z] :匹配字元a到字元z之間的任一字元

[0-9] :匹配數字0到9之間的任一數字

[0-9a-z] :匹配數字0到9或字元a到字元z之間的任一字元

[0-9a-za-z] :匹配數字0到9或字元a到字元z或字元a到字元z之間的任一字元

[^a-z] :匹配除字元a到字元z以外的任一字元

[^0-9] :匹配除數字0到9以外的任一字元

選擇匹配符|,匹配左邊或右邊

python

php模組

import re

定義正則模式時,如果想要避免因為轉譯\引起正則錯誤,可以使用轉譯區r''

正則匹配

import 

res

= '010-12345'

print

(re.match(

r'^\d-\d$'

,s))

如果匹配成功返回乙個物件,匹配失敗返回

none

字串切分

l 

= 'a b   c'

print

(re.split(

r'\s+'

,l))

l =

'a,b, c ;, d'

print

(re.split(

r'[\s|,|;]+'

,l))

提取子串

.group(n)

s 

= '010-12345'

m = re.match(

r'^(\d)-(\d)$',s)

print

(m.group(0))

print

(m.group(

1))

group(0)為匹配到的子串

group(1)表示子表示式匹配到的子串

group(2)…

正則匹配預設為貪婪匹配,會匹配盡量多長度

在後面加個

?可以更換為非貪婪模式

獲取所有匹配到的資訊

s 

= '010-12345,011-12346'

m = re.findall(

r'(\d-\d)',s)

print

(m)

正規表示式預編譯

s 

= '010-12345,011-12346'

pre

= re.compile(

r'(\d-\d)')

print

(pre.findall(s))

預編譯可以在需要大量重複匹配的時候提高一點效率

正則替換

text 

= "jgood is a handsome boy"

print

(re.sub(

r'(\sis\sa\s)'

, r'-\1-'

, text))

反向引用的時候注意使用轉譯區,否則因為

\轉譯的關係會出現錯誤

re.subn()

會返回替換後的字串以及總共的替換次數

正規表示式 8

非列印字元也可以是正規表示式的組成部分。下表列出了表示非列印字元的轉義序列 含義 cx 匹配 x 指示的控制字元。例如,cm 匹配 control m 或回車符。x 的值必須在 a z 或 a z 之間。如果不是這樣,則假定 c 就是 c 字元本身。f換頁符匹配。等效於 x0c 和 cl。n換行符匹...

學習Python Day16 正規表示式

正規表示式是一種工具 一種專門用做字串匹配的工具,能夠在某些情況下能讓字串的處理變得非常簡單。匹配符號 1.普通字元 2.匹配任意乙個字元 3.d 匹配任意乙個數字字元 4.d 匹配任意乙個非數字字元 5.s 匹配任意乙個空白字元 6.s 匹配任意乙個非空白字元 7.w 匹配任意乙個數字 字母或者下...

python day23 正規表示式,RE

一.正規表示式 元字元.匹配出換行符以外的所有字元 w匹配數字 字母 下劃線 s 匹配 空白符 b單詞的末尾 d 匹配數字 w 非 數字 字母 下劃線 d 非數字 s 非空白符 開頭 結尾 字元組 除了字元組中的元素外 量詞 限定符 零或一 n次 p,或更多 n m次 貪婪匹配 盡可能的多匹配結果 ...