基礎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的學習水平。因為這...