一.正規表示式
正規表示式:由一系列特殊字元拼接而成的表示式/規則,該表示式用於從乙個大字串中匹配出符合規則的子字串
1.常用匹配模式
\w 匹配字母數字及下劃線
\w 匹配非字母數字及下劃線
\s 匹配任意空白字元等價於\t\n\r
\s 匹配任意非空字元
\d 匹配任意數字,等價於[0-9]
\d 匹配任意非數字
\a 字串開始
\z 字串結束,如果存在換行,只能匹配到換行前的結束字串
\z 字串結束
\g 匹配到最後完成的位置
\n 匹配乙個換行符
\t 匹配乙個製表符
^ 匹配字串開頭
$ 匹配字串的末尾
. 匹配非換行(\n)的任意字元,當re.dotall標記被指定時,則可以匹配全部字元
[...]用來表示一組字元,單獨列出:[amk]匹配'a','m'或'k'
[^...]排除字元..
2.數量符號
只代表乙個字元,從內任意取出,^在內是排除的意思
* 匹配0個或多個表示式
+ 匹配1個或多個表示式
? 匹配 0個或1個表示式
精確匹配n個表示式
匹配n到m次表示式,貪婪模式
a|b 匹配 a 或 b
() 匹配括號內的表示式,也表示乙個組
3.方法:
3.1 findall
re.findall(pattern,str,flags) 查詢所有符合條件的結果,返回列表,查不到返回空列表
3.2 search
re.search(pattern,str,flags) 只要查詢到第乙個符合條件的結果就會結束查詢,返回包含匹配結果的物件,該物件可以用group()方法得到匹配的字串,如果沒有字串匹配的,則返回none
3.3 match
re.match(pattern,str,flags),用法與search一致,但是是從頭開始匹配
3.4 split
re.split(pattern, string, maxsplit=0, flags=0) 切割字串返回列表,如 re.split('[ab]','sdvadgbfsvd')表示字串遇到a或b都會切分,返回列表
3.5 sub
re.sub('a','a',str) 替換
3.6 compile
re.compile(pattern, flags=0) 記錄正規表示式
a = re.compile(\d+)
a.findall(str)
4.特殊用法
4.1 .* 匹配所有
4.2 ?: 取消分組,()內輸入,可使返回結果為全部的匹配內容
4.3 | 或者,先匹配前面的,後匹配後面的,所以將複雜的寫在前面
4.4 \ 轉義,對正則來說,a\\c確實能匹配到a\c,但是在python直譯器讀取a\\c時,會發生轉義,然後交給re執行,故會報錯,解決方法:a\\\\c或者r'a\\c'
4.5 .*? 通用取值
4.6 ?! ?!pattern,表示在沒有配到pattern的字串的前提下,再進行後續的正規表示式匹配,後續匹配仍然從被匹配字串的頭開始(排除)
如果?!後的正規表示式能匹配到,則直接返回none
4.7 ?= ?=pattern,表示在配到pattern的字串的前提下,再進行後續的正規表示式匹配,後續匹配仍然從被匹配字串的頭開始(必須滿足)
如果?=後的正規表示式不能匹配到,則直接返回none
4.8 查詢漢字 re.findall(r'[\u4e00-\u9fa5]+','.....')
二.物件導向程式設計
核心是物件二字,物件是用來盛放資料和功能的容器
基於該思想程式設計就是在整合程式
優點:可擴充套件性強
缺點:程式設計複雜度高
與面向過程程式設計相比
面向過程:核心在於過程,此思想程式設計相當於在做一條條流水線
優點:把複雜的問題結構化繼而簡單化
缺點:可擴充套件性差
程式設計 正規表示式
乙個正規表示式就是由普通字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式。該模式描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。這裡有一些可能會遇到的正規表示式示例 jscript vbscript 匹配 t t 匹配乙個...
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
RegExp物件 正規表示式
正規表示式 regular expression 1.建構函式 var regex new regexp xyz i 2.字面量 var regex xyz i g global,全文搜尋,不新增的話搜尋到第乙個結果停止搜尋 i ingore case,忽略大小寫,預設大小寫敏感 m multipl...