Python 關於正規表示式的總結

2021-10-07 02:34:09 字數 1684 閱讀 5501

正規表示式(regular expression)描述了一種字串匹配的模式(pattern),用於字串的匹配提取等操作。正規表示式在所有程式語言中都是通用的。

匹配單個字元

.

[ ]\d

\d\s

\s\w

\w

匹配多個字元

*+?

匹配字串首尾:

在正規表示式的首部新增^,意味著待匹配的字串從首部就要和正則式匹配。類似的,正則式尾部新增$,表示待匹配的字串從尾部需和正則式匹配。

^

$

常用的正規表示式:

利用分組, 可以提取字串中想要的指定內容。用括號()括起來的正規表示式表示乙個分組,通過group()函式可獲取分組中的字串。例子:

# 匹配**號碼, 匹配模式中有兩個分組:(\d)、(\d)

>>> m = re.match(r'^(\d)-(\d)$', '010-12345')

>>> m

<_sre.sre_match object; span=(0, 9), match='010-12345'>

>>> m.group(0) # 用group函式可以提取匹配的部分

'010-12345'

>>> m.group(1) # group(1)表示第乙個分組

'010'

>>> m.group(2) # group(2)表示第乙個分組

'12345'

如果想判斷字串中是否具有規律相同的多個子串時, 可以採用分組:

例如,正規表示式<(\w*)>.*<(/\1)>可以匹配,不能匹配fadsfas

當分組個數過多時,可以給分組起別名,在同乙個正規表示式中重複引用該分組。

在python中,re模組已為我們實現了正規表示式的相關操作:

例子:

# re.search()

in [7]: ret = re.search(r"hello", "hello world! hello world!")

in [8]: ret.group()

out[8]: 'hello'

# re.findall()

in [9]: ret = re.findall(r"hello", "hello world! hello world!")

in [10]: print(ret)

['hello', 'hello']

# re.sub()

in [15]: ret = re.sub(r"hello","bye", "hello world! hello world!")

in [16]: ret

out[16]: 'bye world! bye world!'

# re.split()

in [12]: ret = re.split(r":| ","hello:ymn 25 shenyang") # 按:或空格分割字串

in [13]: ret

out[13]: ['hello', 'ymn', '25', 'shenyang']

關於python正規表示式

這篇總結很片面,只是對於python中使用正則的初步認識。python中通過匯入re模組提供對正規表示式的支援。下文主要針對python3進行解釋 import re pattern re.compile hello match pattern.match hello world print mat...

glob,正規表示式元字元,擴充套件正規表示式總結

globbing 檔名通配查詢詳細資訊 man glob 元字元 匹配任意長度的任意字元 匹配任意單個字元 匹配指定範圍內的任意單個字元 匹配指定範圍外的任意單個字元 有幾種特殊格式 a z 0 9 a za z a z0 9 upper 所有大寫字母 lower 所有小寫字母 alpha 所有字母...

關於正規表示式

前言 regular expressions 正規表示式,以下用re稱呼 對小弟來說一直都是神密的地帶,看到一些網路上的大大,簡單用re就決解了某些文字的問題,小弟便興起了學一學re的想法,但小弟天生就比較懶一些,總希望看有沒有些快速學習的方式,於是小弟又請出google大神,借由祂的神力,小弟在網...