re模組findall函式用法

2022-08-28 11:45:13 字數 2164 閱讀 3312

本文件介紹了正規表示式元字元 和 re模組 findall 函式用法。

給予正規表示式強大的功能和靈活性。

表 示 法

描述正規表示式示例

符號literal

匹配文字字串的字面值literal

foo.

匹配任何字元(除了\n 之外)

b.b^

匹配字串起始部分

^dear

$匹配字串終止部分

/bin/*sh$

表 示 法

描述正規表示式示例

特殊字元

\w匹配任何字母數字字元,與[a-za-z0-9_]相同( \w 與之相反)

[a-za-z_]\w+

\s匹配任何空格字元,與[\n\t\r\v\f]相同( \s 與之相反)

of\sthe

findall函式返回的總是正規表示式在字串中所有匹配結果的列表,此處主要討論列表中「結果」的展現方式,即findall中返回列表中每個元素包含的資訊。

# findall

import re

s = "456123sad 789re3dfheasdf a123fas 123awef q3segd a123dsas"

re0subject1 = re.compile('\w+\s+')

print(re0subject1.findall(s))

> 執行結果:

['456123sad ', '789re3dfheasdf ', 'a123fas ', '123awef ', 'q3segd ']

當給出的正規表示式中不帶括號時,列表的元素為字串,此字串為整個正規表示式匹配的內容。

注意:此處出現的匹配是\w+\s+,最後乙個字串沒有空格字元,所以沒有匹配。

# findall

import re

s = "456123sad 789re3dfheasdf a123fas 123awef q3segd a123dsas "

re0subject2 = re.compile('\w+\s+')

print(re0subject2.findall(s))

> 執行結果:

['456123sad ', '789re3dfheasdf ', 'a123fas ', '123awef ', 'q3segd ', 'a123dsas ']

當給出的正規表示式中不帶括號時,列表的元素為字串,此字串為整個正規表示式匹配的內容。

import re

s = "456123sad 789111re3dfheasdf a123fas 123awef q3segd a123dsas "

# s = "adfad asdfasdf asdfas asdfawef asd adsfas "

re0subject3 = re.compile('(\w+)\s+\w+')

print(re0subject3.findall(s))

> 執行結果:

['456123sad', 'a123fas', 'q3segd']

當給出的正規表示式中帶有乙個括號時,列表的元素為字串,此字串的內容與括號中的正規表示式相對應(不是整個正規表示式的匹配內容)。

import re

s = "456123sad 789111re3dfheasdf a123fas 123awef q3segd a123dsas "

# s = "adfad asdfasdf asdfas asdfawef asd adsfas "

re0subject3 = re.compile('((\w+)\s+\w+)')

print(re0subject3.findall(s))

> 執行結果:

[('456123sad 789111re3dfheasdf', '456123sad'), ('a123fas 123awef', 'a123fas'), ('q3segd a123dsas', 'q3segd')]

當給出的正規表示式中帶有多個括號時,列表的元素為多個字串組成的元組,元組中字串個數與括號對數相同,字串內容與每個括號內的正規表示式相對應,並且排放順序是按括號出現的順序。

re模組 findall 詳解

1 import re2 kk re.compile r d 3 kk.findall one1two2three3four4 4 1,2,3,4 56 注意此處findall 的用法,可傳兩個引數 7 kk re.compile r d 8 re.findall kk,one123 9 1,2,3...

Python 正則re模組之findall 詳解

1.先說一下findall 函式的兩種表示形式 import re kk re.compile r d kk.findall one1two2three3four4 1,2,3,4 注意此處findall 的用法,可傳兩個引數 kk re.compile r d re.findall kk,one1...

Python 正則re模組之findall 詳解

python 正則re模組之findall 詳解 先說一下findall 函式的兩種表示形式 import re kk re.compile r d kk.findall one1two2three3four4 1,2,3,4 注意此處findall 的用法,可傳兩個引數 kk re.compile...