python re模組知識點詳解

2021-10-08 07:20:51 字數 2780 閱讀 7825

ret = re.match(r"正規表示式"

, 需要處理的字串)

# ret.group() # 如果匹配到則輸出匹配到的資料

1、匹配單個字元

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

[] 匹配[

]中列舉的字元

\d 匹配數字,即0-9

\d 匹配非數字,即不是數字

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

\s 匹配非空白

\w 匹配單詞字元,即a-z、a-z、0

-9、_

\w 匹配非單詞字元

[^0-9

] 取非數字的任意乙個字元

2、匹配多個字元

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

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

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

匹配前乙個字元出現m次

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

re.match(r".*"

, html. re.s)

# re.s讓.包括\n

3、判斷開頭和結尾

^ 匹配字串開頭

$ 匹配字串結尾

4、匹配分組

| 匹配左右任意乙個表示式,或的意思

(ab) 將括號中字元作為乙個分組 # re.match(r"", string).group(1) 表示取第乙個括號的值

\num 引用分組num匹配到的字串

(?p) 分組起別名

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

re.match(r"<(?p\w*)>.*"

, html_str)

.group(

)# 如果在正規表示式中需要用到了某些普通的字元,比如.?等,僅僅需要在他們前面新增乙個反斜槓進行轉義

# re.match(r"", string).group(1) # 表示取第乙個括號的值

# re.match(r"", string).group(2) # 表示取第二個括號的值

# re.match(r"<(\w*)>.*", html_str).group() \1表示取第乙個括號的值

5、re模組的高階用法

search 不從頭開始匹配,當匹配到乙個字元跟它的正則相符時才開始

findall 找出滿足正則的字串,返回乙個列表

# >>> re.findall(r"\d+", "python = 9000, c=7883,c++=15787")

['9000'

,'7883'

,'15787'

] sub 將匹配到的資料進行替換

# >>> re.sub(r"\d+", '998', "python = 997, c=24554")

'python = 998, c=998'

split 根據匹配進行切割字串,並返回乙個列表

# >>> re.split(r":| ", "info:xiaokang 33 jinan")

['info'

,'xiaokang'

,'33'

,'jinan'

]def

add(temp)

: num = temp.group(

) num =

int(num)+1

return

str(num)

# 先進行匹配,將匹配到的字串作為add函式的引數傳到add函式中,函式返回的值替換原來匹配到的字串再輸出

ret = re.sub(r"\d+"

, add,

"python = 997"

)print

(ret)

輸出 : python =

998"""

## import re

## names = ["age", "_a?ge", "46_add", "___哈aee", "a56_", "jjj22", "a"]

# for name in names:

# ret = re.match(r"[a-za-z_][a-za-z_0-9]*$", name)

# if ret:

# print("%s是有效的變數名" % name)

# else:

# print("%s是無效的變數名" % name)

import re

# def main():

## # 如果在正規表示式中需要用到了某些普通的字元,比如.?等,僅僅需要在他們前面新增乙個反斜槓進行轉義

# # re.match(r"", string).group(1) # 表示取第乙個括號的值

# # re.match(r"", string).group(2) # 表示取第二個括號的值

# ret = re.match(r"^([a-za-z_0-9])@(163|162)\.com$", string)

# # re.match(r"<(\w*)>.*", html_str).group() \1表示取第乙個括號的值

# if ret:

# print("%s是163郵箱!" % string)

# else:

# print("%s不是163郵箱!" % string)

python re正則模組詳解

正規表示式 regular expression 描述了一種字串匹配的模式 pattern 可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串等。構造正規表示式的方法和建立數學表示式的方法一樣。也就是用多種元字元與運算子可以將小的表示式結合在一起來建立更大的表示...

python模組知識點

一 模組的概念 乙個包含python 的檔案就是乙個模組。1 現在程式開發檔案比較大,都放在乙個檔案中維護不方便,拆分成多個檔案方便維護與管理。2 模組可以增加 的重用率。使用模組的步驟 3 匯入模組,第一次匯入模組的時候,模組會執行一遍,如果匯入多次,就不再執行模組中的內容了。4 使用模組,模組名...

hive知識點詳解

hive支援的常用資料型別和檔案格式 hive是一種構建在hadoop上的資料倉儲,hive把sql查詢轉換為一系列在hadoop集群中執行的mapreduce作業,是mapreduce更高層次的抽象,不用編寫具體的mapreduce方法。hive將資料組織為表,這就使得hdfs上的資料有了結構,元...