正規表示式 re模組

2022-08-03 03:15:13 字數 3772 閱讀 4475

匯入import re

python中通過re模組來處理正規表示式。re模組的常用方法如下:

re.match(re規則,字串):從頭開始匹配。從字串的第乙個字元開始匹配,如果第乙個字元不匹配規則,那麼匹配失敗。

match(pattern, string, flags=0)

re.search(re規則,字串):匹配包含。不要求從字串的第乙個字元就匹配。只要字串當中有匹配該規則的,則就匹配成功。

search(pattern, string, flags=0)

re.findall(re規則,字串):把所有匹配的字元放在列表中並返回。

findall(pattern, string, flags=0)

re.sub(re規則,替換串,被替換字串):匹配字元並替換。

sub(pattern, repl, string, count=0, flags=0)

正則常用規則1:

'.' 匹配除「\n」之外的任何單個字元

'^' 匹配字元開頭

'$' 匹配字元結尾

'*' 匹配*前面的字元0次 或多次

'+' 匹配前乙個字元1次 或多次

'?' 匹配前乙個字元0次 或1次

'' 匹配前乙個字元m次

>>> import

re>>> re.match('

.','

abdfffhhh123')

<_sre.sre_match object; span=(0, 1), match='

a'>

>>> re.match('

.','

abcfffhhh123

').group()'a

'>>> re.match('

.*','

abcfffhhh123')

<_sre.sre_match object; span=(0, 12), match='

abcfffhhh123

'>

>>> re.match('

^a.*3$

','abcfffhhh123')

<_sre.sre_match object; span=(0, 12), match='

abcfffhhh123

'>

>>> re.match('

a.*5$

','abcfffhhh123')

>>> re.search('

f*','

abcfffhhh123')

<_sre.sre_match object; span=(0, 0), match=''>

>>> re.search('

^af*

','abcfffhhh123')

<_sre.sre_match object; span=(0, 1), match='

a'>

>>> re.match('

af*','

abcfffhhh123')

<_sre.sre_match object; span=(0, 1), match='

a'>

>>> re.match('

af+','

abcfffhhh123')

>>> re.match('

.*f+

','abcfffhhh123')

<_sre.sre_match object; span=(0, 6), match='

abcfff

'>

>>> re.match('

.*f?

','abcfffhhh123')

<_sre.sre_match object; span=(0, 12), match='

abcfffhhh123

'>

>>> re.match('

af.*

','abcfffhhh123')

>>> re.match('

.*f','

abcfffhhh123')

<_sre.sre_match object; span=(0, 6), match='

abcfff

'>

>>>

正則常用規則2:

'\d' 匹配乙個數字字元

'\d' 匹配乙個非數字字元

'\w' 匹配包含下劃線的任何單詞字元。等價於」[a-z a-z 0-9 _]「

'\w' 匹配任何非單詞字元

'(pattern)' 匹配pattern並獲取這一匹配

'[a-z]' 字元範圍。匹配指定範圍內的任意字元

'[xyz]' 字元集合。匹配所包含的任意乙個字元

>>> re.search('

\d','

123abc')

<_sre.sre_match object; span=(0, 1), match='

1'>

>>> re.search('

\d','

123abc

').group()

'123

'>>> re.search('

\d','

123abc

').group()'a

'>>> re.search('

\w','

123_abc@@###

').group()

'123_a

'>>> re.search('

\w','

123abc@@@###

').group()'@

'

>>> re.findall('

(\d)

','12abd55ggg')

['12', '55'

]>>> re.findall('

[abc]

','12abd55ggg')

['a', 'b'

]>>> re.findall('

[0-9]

','12abd55ggg')

['1', '

2', '

5', '5'

]>>> re.findall('

[0-9][abc]

','12abd55ggg')

['2a'

]>>> re.search('

(\d).*

','abcfffhhh1235,ab478

').group()

'1235,ab478

'>>> re.search('

(\d).*

','abcfffhhh1235,ab478

').group(1)'1

'

正規表示式手冊參考:

re 正規表示式模組

import re 預定義字符集 d 數字 0 9 d 非數字 d s 空白字元 空格 t r n f v s 非空白字元 s w 單詞字元 a za z0 9 w 非單詞字元 w 匹配數量 匹配除換行符以外的任何單個字元 匹配前乙個字元0或無限次 盡可能多的匹配 盡可能少的進行匹配前邊的正規表示式...

正規表示式 re模組

re是python中的正規表示式模組,正則也是每個人程式設計之路上必備的基礎技能。這部落格希望即便從來沒接觸過的人看了也會使用正規表示式字元 含義.匹配除了換行符外的任何字元。可以用re.dotall來設定匹配任何字元,包括換行符 丨a丨b 表示正規表示式匹配a或者b 匹配輸入字串開始的位置,如果設...

正規表示式re模組

正規表示式re模組 編譯正規表示式模式,返回乙個物件的模式。可以把那些常用的正規表示式編譯成正規表示式物件,這樣可以提高一點效率。1 compile 格式 re.compile pattern,flags 0 pattern 編譯時用的表示式字串。flags 編譯標誌位,用於修改正規表示式的匹配方式...