3 2 2 正規表示式的功能(1)

2021-07-04 18:24:58 字數 4941 閱讀 1765

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

從乙個字串string

任何位置開始匹配正規表示式的字串

pattern

,匹配成功返回

match

物件,如果不成功返回

none

。flags

是上面介紹的相關標誌。

例子:print('re.search')

result = re.search('mycar\d+','testmycar007\nmycar008\n')

if result:

print(result)

結果輸出如下:

re.search

<_sre.sre_match object; span=(4, 12), match='mycar007'>

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

從字串string

開始位置對正規表示式

pattern進行0

個或多個字元進行匹配,如果匹配成功返回

match

物件。如果匹配不成功返回

none

。值得注意是,當多行標誌

re.multiline

起作用時,

re.match

()只匹配字串最開始的字元,而不會匹配換行符開始的字元。如果你想搜尋乙個字串任意位置開始的匹配,應使用

re.search

()。例子:

print('re.match')

result = re.match('mycar\d+','mycar007\nmycar008\n')

if result:

print(result)

result = re.match('tmycar\d+','mycar007\nmycar008\n')

if result:

print(result) 

結果輸出如下:

re.match

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

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

這個方法當整個字串string

與正規表示式匹配時返回

match

物件,否則返回

none

。此方法不存在部分匹配。

例子:print('re.fullmatch')

result = re.fullmatch('mycar007','mycar007')

if result:

print(result)

result = re.fullmatch('mycar007','mycar007 ')

if result:

print(result)

結果輸出如下:

re.fullmatch

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

re.split(pattern, string, maxsplit=0, flags=0)

根據正規表示式來分割字串string

。如果採用分組模式的正規表示式,那麼分隔符作為一組,返回在列表中。如果

maxsplit

為非零數值,那麼把字串最多分割為

maxsplit

個元素,剩餘的全部組成乙個元素。

例子:print('re.split')

result = re.split('\w+','cai, cai, cai.')

if result:

print(result)

result = re.split('(\w+)','cai, cai, cai.')

if result:

print(result)

result = re.split('\w+','cai, cai, cai.', 1)

if result:

print(result)

result = re.split('\w+','cai, cai, cai.', 2)

if result:

print(result)

結果輸出如下:

re.split

['cai', 'cai', 'cai', '']

['cai', ', ', 'cai', ', ', 'cai', '.', '']

['cai', 'cai, cai.']

['cai', 'cai', 'cai.']

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

查詢返回非重複匹配的字串元素的列表。從左向右搜尋字串string

,當有匹配成功時,就生成乙個列表元素。

例子:print(r'(.+) \1')

m = re.findall(r'(.+) \1', r'abc abc abcabc 55 56 57 57')

if m:

print(m) 

結果輸出如下:

(.+) \1

['abc', '5', '57']

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

在字串string

裡按正規表示式

pattern

來匹配,返回匹配成功的迭代子

iterator

物件。匹配過程是從字串

string

從左向右匹配,當匹配成功之後,就返回相應的物件。當沒有匹配成功字串,就返回空物件。

例子:print('re.finditer')

for i  in re.finditer('abc', 'abc, abc1, abc2'):

print(i)

結果輸出如下:

re.finditer

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

<_sre.sre_match object; span=(5, 8), match='abc'>

<_sre.sre_match object; span=(11, 14), match='abc'>

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

在字串string

中根據正規表示式

pattern

匹配,如果匹配成功,就使用

repl

替換相應的字串,匹配完成後返回替換後的字串。

count

是表示替換最多替換多少個,

0是不限。其中

repl

也可以替換函式,傳入乙個匹配物件的引數,返回替換的字串。

例子:print('re.sub')

result = re.sub('cai', 'replace','cai, cai, cai.')

if result:

print(result)

def myrepl(matchobj):

if matchobj.group(0) == 'cai': return 'ok'

else: return '#'

result = re.sub('cai', myrepl, 'cai, caicai, cai.',1)

if result:

print(result)

結果輸出如下:

re.sub

cai, replace, replace.

cai, okcai, cai.

re.subn(pattern, repl, string, count=0, flags=0)

這個方法的功能與方法sub

相同,只不過返回元組物件。元組使用這樣的格式(新字串,多少個替換)。

例子:print('re.subn')

result = re.subn('cai', 'replace','cai, cai, cai.')

if result:

print(result)

結果輸出如下:

re.subn

('cai, replace, replace.', 2)

re.escape(string)

本方法是把所有非ascii

字元、數字和下劃線以外字元修改為轉義方式,也就是新增反斜線在前面。

例子:print('re.escape')

result = re.escape('cai')

if result:

print(result)

result = re.escape('cai----_3721中國

')if result:

print(result)

結果輸出如下:

re.escape

caicai\-\-\-\-_3721\中\國

re.purge()

清除正規表示式的內部快取。

例子:print('re.purge()')

result = re.compile('cai\d')

print(result)

re.purge()

print(result)

結果輸出如下:

re.purge()

re.compile('cai\\d')

re.compile('cai\\d')

異常re.error

編譯乙個正規表示式不合法時,會丟擲異常錯誤。

例子:print('re.error')

try:

result = re.compile('(cai\d')

except re.error as error:

print('re:',str(error))

結果輸出如下:

re.error

re: unbalanced parenthesis

正規表示式功能1

正規表示式 符合一定規則的表示式。作用 用於專門操作字串。特點 用於一些特定的符號來表示一些 操作。這樣就簡化書寫 所以學習正規表示式,就是在學習一些特殊符號的使用。好處 可以簡化對字串的複雜操作 弊端 符號定義越多,正則越長,閱讀性越差 具體操作功能 1,匹配 string matches方法。用...

正規表示式 1 初識正規表示式

簡單地說,正規表示式就是一套處理字串的規則和方法,以行為單位對字串進行處理,通過特殊的符號的輔助,我們可以快速的過濾,替換某些特定的字串。運維工作中,會有大量訪問日誌,錯誤日誌,大資料。如何能夠快速的過濾出我們需要的內容,這就需要正規表示式。awk,sed,grep egrep 三劍客要想能工作的更...

正規表示式 1 正規表示式基礎

1.正規表示式基礎 正規表示式描述了一種字串匹配的模式,即可以使使用者通過一系列普通字元或特殊字元構建能夠明確描述文字字串的匹配模式,可以用來檢查某個字串是否含有某種子字串,將匹配的子字串做替換或者從某個字串中取出符合某個條件的子字串等。1.1 正規表示式的基本結構 乙個正規表示式就是由普通字元 如...