python複習6 正規表示式

2021-10-07 04:23:31 字數 2613 閱讀 3600

# 匹配單個字元

# . 匹配任意1個字元(除了\n)

# 匹配中列舉的字元

# \d 匹配數字,即 0-9

# \d 匹配非數字,匹配部署數字

# \s 匹配空白,即空格,tab鍵

# \s 匹配非空白

# \w 匹配單詞字數,即a-z,a-z 0-9,_ # 支援中文

# \w 匹配非單詞字元

# rec = re.match(r'速度與激情[1-23-4a-bg-y]', '速度與激情h')

# rec = re.match(r'速度與激情\w', '速度與激情哈')

# print(rec.group())

# 匹配多個字元

# * 匹配前乙個字元出現0次或者無限次,即可有可無

# + 匹配前乙個字元出現1次或者無限次,即至少有1次

# ? 匹配前乙個字元出現1次或者0次,即要麼有1次,要麼沒有

# 匹配前乙個字元出現m次

# 匹配前乙個字元出現從m到n次

# ^ 判斷開頭

# $ 判斷結尾

# rec = re.match('速度與激情\d', '速度與激情12') # 表示一位二位都可以

# rec = re.match('021-?\d', '021-123156465')

# rec = re.match('.*', html, re.s) # 想要. 可以匹配到換行就需要加上第三個引數re.s

# print(rec.group())

# i = input("請輸入:")

# rec = re.match(r'[a-za-z0-9_]@163\.com$', i)

# print(rec)

# if rec:

# print("成功")

# else:

# print("失敗")

# 分組()

# | 匹配左右任意乙個表示式

# (ab) 將括號中字元作為分組

# \num 應用分組

# (?p) 分組起別名

# (?p=name) 引用別名為name分組匹配的字串

h =""

h1 =""

# rec = re.match(r'<(\w*)>.*', h) # \1表示和前面第一組分組內容要一樣,不然匹配不到

# print(rec.group())

rec = re.match(r'<(\w*)><(\w*)>.*'

, h1)

rec2 = re.match(r'<(?p\w*)><(\w*)>.*'

, h1)

print

(rec.group(

))

# match()函式只檢測字串開頭位置是否匹配,匹配成功才會返回結果,否則返回none

# search()函式會在整個字串內查詢模式匹配,只到找到第乙個匹配然後返回乙個包含匹配資訊的物件,該物件可以通過呼叫group()方法得到匹配的字串

# findall() 滿足直接放回資料以乙個列表的新式

# sub('正規表示式','替換後的值','需要被替換的值')

# split('正規表示式',需要變切割的) 切割返回乙個列表

import re

defmain()

: email =

input()

# 用到點以及問好,需要使用\在轉移

rec = re.match(r'[a-za-z0-9_]@(163|126|qq)\.com$'

, email)

if rec:

print

("成功:%s"

% email)

else

:print

("失敗:%s"

% email)

if __name__ ==

'__main__'

: main(

)

import re

defmain()

: names =

['age'

,'_age'

,'1age'

,'age1'

,'a_age'

,'age_1_'

,'age!'

,'a#123'

]for i in names:

# 表示第一位數可以是數字字母下劃線,第二位數字可以有多個也可以沒有要求字母下劃線數字,最後乙個$表示必須匹配到字串結尾

# match預設 判斷開頭

rec = re.match(r'[a-za-z_][a-za-z0-9_]*$'

, i)

if rec:

print

("f符合要求的:%s"

% i)

else

:print

('不符合要求:%s'

% i)

if __name__ ==

'__main__'

: main(

)

正規表示式複習

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了regexp 物件的multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置...

正規表示式複習

字元描述 將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了regexp物件的multiline屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束位置。如果...

正規表示式複習

為了下列場景中的需求,可以使用正規表示式非常簡單的完成,這就是使用正規表示式的目的 在乙個檔案中,查詢出itcast開頭的語句 在乙個檔案中,找到含有itcast的語句 在乙個檔案中,找到郵箱為163或者126的所有郵件位址 通常正規表示式對字串匹配的時候,可以使用re模組 import re 使用...