正規表示式 物件導向程式設計

2021-10-08 19:37:22 字數 2039 閱讀 4830

一.正規表示式

正規表示式:由一系列特殊字元拼接而成的表示式/規則,該表示式用於從乙個大字串中匹配出符合規則的子字串

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...