Python程式設計基礎學習筆記 正規表示式

2021-08-22 02:30:02 字數 2463 閱讀 6550

基礎1:

全域性匹配函式使用格式 re.compile(正規表示式).findall(源字串)

普通字元 正常匹配

\n 匹配換行符

\t 匹配製表符

\w 匹配字母、數字、下劃線

\w 匹配除字母、數字、下劃線

\d 匹配十進位制數字

\d 匹配除十進位制數字

\s 匹配空白字元

\s 匹配除空白字元

[ab89x] 原子表,匹配ab89x 中的任意乙個

[^ab89x] 原子表,匹配除ab89x 以外的任意乙個字元

例項1:

源字串:"aliyunedu"

正規表示式:"yu"

匹配出什麼? yu

源字串:'''aliyun

edu'''

正規表示式:"yun\n"

匹配出什麼? yun\n

源字串:"aliyu89787nedu"

正規表示式:"\w\d\w\d\d\w"

匹配出什麼? u89787

源字串:"aliyu89787nedu"

正規表示式:"\w\d[nedu]\w"

匹配出什麼? 87ne

基礎2:

. 匹配除換行外任意乙個字元

^ 匹配開始位置

$ 匹配結束位置

* 前乙個字元出現0\1\多次

? 前乙個字元出現0\1 次

+ 前乙個字元出現1\多次

前乙個字元恰好出現n 次

前乙個字元至少n 次

前乙個字元至少n,至多m 次

| 模式選擇符或

() 模式單元,通俗來說就是:想提取出什麼內容,就在正則中用小括號將其括起來

例項2:

源字串:'''aliyunnnnji87362387aoyubaidu'''

正規表示式:"ali..."

匹配出什麼? aliyun

正規表示式:"^li..."

匹配出什麼? none

正規表示式:"^ali..."

匹配出什麼? aliyun

正規表示式:"bai..$"

匹配出什麼? baidu

正規表示式:"ali.*"

匹配出什麼? aliyunnnnji87362387aoyubaidu

tips:預設貪婪,即預設盡可能多地進行匹配

正規表示式:"aliyun+"

匹配出什麼? aliyunnnn

正規表示式:"aliyun?"

匹配出什麼? aliyun

正規表示式:"yun"

匹配出什麼? yunn

正規表示式:"^al(i..)."

匹配出什麼? iyu

基礎3:

貪婪模式:盡可能多地匹配

懶惰模式:盡可能少地匹配,精準模式

預設貪婪模式

如果出現如下組合,則代表為懶惰模式:

*?+?

例項3:

源字串:"poytphonyhjskjsa"

正規表示式:"p.*y"

匹配出什麼? poytphony

為什麼? 預設貪婪模式

源字串:"poytphonyhjskjsa"

正規表示式:"p.*?y"

匹配出什麼? ['poy', 'phony']

為什麼? 懶惰模式,精準匹配

基礎4:

模式修正符:在不改變正規表示式的情況下通過模式修正符使匹配結果發生更改

re.s 讓.也可以匹配多行

re.i 讓匹配時忽略大小寫

例項4:

源字串:"python"

正規表示式:"pyt"

匹配方式:re.compile("pyt").findall("python")

匹配結果:

源字串:"python"

正規表示式:"pyt"

匹配方式:re.compile("pyt",re.i).findall("python")#ignore 忽略

匹配結果: pyt

源字串:string="python"

正規表示式:"pyt"

匹配方式:re.compile("pyt",re.i).findall("python")

匹配結果: pyt

源字串:string="""我是阿里雲大學

歡迎來學習

python 網路爬蟲課程

"""正規表示式:pat="阿里.*?python"

匹配方式:re.compile(pat).findall(string)

匹配結果:

源字串:string="""我是阿里雲大學

歡迎來學習

python 網路爬蟲課程

"""正規表示式:pat="阿里.*?python"

匹配方式:re.compile(pat,re.s).findall(string)

匹配結果: ['阿里雲大學\n 歡迎來學習\npython']

Python程式設計基礎學習筆記

除法運算陷阱 預設為整除,1.0 2 0.51.7 在互動式直譯器idle中執行if語句時,要按兩次回車才能執行 內建函式 如 pow floor 向下取整函式不是內建函式,需要呼叫模組math才能用 匯入模組方法 import math math.floor 3.3 math.floor 3.3 ...

python學習筆記 python程式設計基礎

一.乙個隆重的儀式 我們在學習語言的時候,第乙個寫的程式肯定都是hello world.來寫第乙個程式吧,其實很簡單,python的語法就是簡單 優雅,乙個print就搞定。1 print hello world 二.基本輸入輸出 1.輸入 a input 請輸入資料 請輸入資料 2.輸出 prin...

Python基礎例項程式設計 學習筆記

折騰了乙個下午的 django 和 pycharm 找了半天發現community版本根本不能使用django 後來有想了半天的辦法才折騰好配置的環境,終於要開始python的篇章了。鑑於我的python其實學的也不是很紮實,所以一邊學習django的框架,一邊加固自己python的學習水平。因為這...