python3正規表示式

2021-08-29 12:00:01 字數 3033 閱讀 6819

正規表示式,又稱規則表示式。(英語:regular expression,在**中常簡寫為regexregexpre),電腦科學的乙個概念。正規表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。

元字元字元

描述\將下乙個字元標記為乙個特殊字元、或乙個原義字元、或乙個向後引用、或乙個八進位制轉義符。例如,『n』 匹配字元 「n」。』\n』 匹配乙個換行符。序列 『\』 匹配 「\」 而 「\(」 則匹配 「(」。

.匹配除了換行符的任意字元

^匹配字串的開頭

$匹配字串的結尾

\w匹配字母或數字或下劃線或漢字

\s匹配任意空白符,如空格、tab

\d匹配任意數字

\b匹配單詞的開始或結束

限定符字元

描述*重複零次和多次

+重複一次或更多次

?重複零次或一次

重複n次

重複n次或更多

重複n次到m次

反義字元

描述\w

匹配不是字母、數字、下劃線、漢字的字元

\s匹配不是空格的字元

\d匹配不是數字的字元

\b匹配不是單詞開頭或結束的位置

[^x]

匹配除了x以外的任意字元

[^aeiou]

匹配除了aeiou以外的任意字元

python自1.5版本起增加了re模組,它提供perl風格的正規表示式模式。

re模組使python語言擁有全部的正規表示式功能。

compile函式根據乙個模式字串和可選的標誌引數生成乙個正規表示式物件。該物件擁有一系列方法用於正規表示式匹配和替換。

re模組也提供了與這些方法功能完全一致的函式,這些函式使用乙個模式字串做為它們的第乙個引數。

本節主要介紹python中常用的正規表示式處理函式

re.match函式

re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match()就返回none。

re.match(pattern, string, flags=0)

re.match引數說明

引數描述

pattern

匹配的正規表示式

string

匹配的字串

flag

標誌位,用於控制正規表示式的匹配方式,如:是否區分大小寫,多行匹配等等。

匹配成功re.match方法返回乙個匹配的物件,否則返回none

我們可以使用group(num)groups()匹配物件函式來獲取匹配表示式。

匹配物件方法

描述group(num=0)

匹配的整個表示式的字串,group() 可以一次輸入多個組號,在這種情況下它將返回乙個包含那些組所對應值的元組。

groups()

返回乙個包含所有小組字串的元組,從 1 到 所含的小組號。

例項1:

#!/usr/bin/python

# -*- coding: utf-8 -*-

import re

print(re.match('https', '').span()) # 在起始位置匹配

print(re.match('https', '')) # 不在起始位置匹配

執行結果:

(0, 5)

none

例項2:

#!/usr/bin/python3

import re

line = "cats are smarter than dogs"

matchobj = re.match( r'(.*) are (.*?) .*', line, re.m|re.i)

if matchobj:

print ("matchobj.group() : ", matchobj.group())

print ("matchobj.group(1) : ", matchobj.group(1))

print ("matchobj.group(2) : ", matchobj.group(2))

else:

print ("no match!!")

執行結果:

matchobj.group() :  cats are smarter than dogs

matchobj.group(1) : cats

matchobj.group(2) : smarter

正規表示式修飾符

修飾符描述re.i

對大小寫不敏感

re.l

做本地化識別(locale-aware)匹配

re.m

多行匹配,影響 ^ 和 $

re.s

使 . 匹配包括換行在內的所有字元

re.u

根據unicode字符集解析字元。這個標誌影響 \w, \w, \b, \b.

re.x

該標誌通過給予你更靈活的格式以便你將正規表示式寫得更易於理解。

參考資料

Python3 正規表示式

常用的匹配模式 正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。re 模組使 python 語言擁有全部的正規表示式功能。re.match函式 re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none。re.match...

Python3 正規表示式

正規表示式是乙個特殊的字串行,它能幫助你方便的檢查乙個字串是否與某種模式匹配。python 自1.5版本起增加了re 模組,它提供 perl 風格的正規表示式模式。re 模組使 python 語言擁有全部的正規表示式功能。compile 函式根據乙個模式字串和可選的標誌引數生成乙個正規表示式物件。該...

Python3 正規表示式

目錄 python 正規表示式 正規表示式基本知識 re模組 匹配字串 切分字串 分組 貪婪匹配 編譯 d表示匹配乙個數字,即0 9 w表示匹配乙個字母或數字 表示匹配任意乙個字元 表示匹配任意個字元 包括0個 或其前面的表示式出現任意次數 表示至少匹配乙個字元,或其前面的表示式至少出現1次 表示匹...