Python 正規表示式

2021-08-18 11:18:02 字數 2874 閱讀 1741

簡介

正規表示式是對字串操作的一種邏輯公式。它作為一種字串的匹配模式,用於檢視指定字串是否存在於被查詢字串中、替換指定字串或者通過匹配模式查詢指定字串。

需要定義乙個用於匹配的模式字串以及乙個匹配的物件:源字串。簡單的匹配:test = re.match("hello", "hello python!")

其中「hello」是模式,「hello python!」是源——你想要檢測的字串。match()函式用於檢視源是否以模式開頭

如果是更加複雜的匹配,可以先對模式進行編譯以加快匹配速度:temp = re.compile("hello")

然後就可以直接使用編譯好的模式進行匹配了:test = temp.match("hello python!")

模式

re模組

1.match()

match()函式檢測

模式是否匹配源字串

(只能檢測模組是否是源的開頭),如果匹配成功,返回乙個match物件,否則返回none。

import re#匯入正規表示式模組

test = "hello python"

if re.match("hello",test):

print("ok")

else:

print("failed")

2.search()search()函式可以在源字串的任何位置檢測是否有模組,如果匹配成功,返回乙個match物件,否則返回none。

import re

test = "hello, python world"

if re.search("python",test):

print("ok")

else:

print("failed")

3.findall()可以查詢模式字串在源字串中出現了多少次

import re

test = "hello, python world"

temp = re.findall("h", test)

print(temp)#>>>['h', 'h']

print(len(temp))#>>>2

4.split()依據模式字串將源字串切分

import re

test = "hello, python world"

temp = re.split("o", test)

print(temp)#>>>['hell', ', pyth', 'n w', 'rld']

5.sub()使用模式字串替換匹配的源字串,和replace()函式有些類似

import re

test = "hello, python world"

temp = re.sub("o", "o", test)

print(temp)#>>>hello, python world

6.group()輸出匹配的模式

import re

test = "hello, python world"

temp = re.match(r"(hello), (python) (world)", test)#匹配兩組以上時要按照源字串模式進行匹配,r是為了省略轉義字元

print(temp)#>>>print(temp.groups())#>>>('hello', 'python', 'world')

print(temp.group())#>>>hello, python world

print(temp.group(0))#>>>hello, python world

print(temp.group(1))#>>>hello

print(temp.group(2))#>>>python

print(temp.group(3))#>>>world

貪婪匹配正規表示式預設是貪婪匹配,也就是匹配盡可能多的字元。

import re

test = "101000"

temp = re.match("^(\d+)(0*)$", test)

print(temp.groups())#>>>('101000', '')

由於正則採用貪婪匹配,所以直接把後面的0全部匹配了,導致後面的分組0*只能匹配空字串了。

要讓正則採用非貪婪匹配,才能使後面的分組0*把0匹配出來;方法很簡單,在你要非貪婪的正則後面加上?就可以讓正則採用非貪婪匹配了。

import re

test = "101000"

# 貪婪匹配

temp = re.match("^(\d+)(0*)$", test)

print(temp.groups())#>>>('101000', '')

# 非貪婪匹配

temp = re.match("^(\d+?)(0*)$", test)

print(temp.groups())#>>>('101', '000')

python正規表示式元字元 正規表示式

字元 描述將下乙個字元標記為乙個特殊字元 或乙個原義字元 或乙個 向後引用 或乙個八進位制轉義符。例如,n 匹配字元 n n 匹配乙個換行符。序列 匹配 而 則匹配 匹配輸入字串的開始位置。如果設定了 regexp 物件的 multiline 屬性,也匹配 n 或 r 之後的位置。匹配輸入字串的結束...

Python 正規表示式

1.在python中,所有和正規表示式相關的功能都包含在re模組中。2.字元 表示 字串的末尾 如 road 則表示 只有當 road 出現在乙個字串的尾部時才會匹配。3.字元 表示 字元中的開始 如 road 則表示 只有當 road 出現在乙個字串的頭部時才會匹配。4.利用re.sub函式對字串...

Python正規表示式

學習python自然而然就不得不面對正規表示式這個難題。當初在沒有學習python之前,自己也曾經嘗試著學習過正規表示式,但是那時候感覺很麻煩,很難懂,結果就是不了了之。但是現在學習python我用的書是 python基礎教程 第二版 這本書中對re模組的講解很簡單易懂,內容不多但起碼把人領進門了,...