免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
findAll()マッチング方法を使用します
説明:
のfindAll()メソッドが使用されているリストの形式で文字列全体とリターンの正規表現に合わせてすべての文字列を検索するため。マッチが成功した場合。リストには、それ以外の場合は、空のリストを返す、返されたマッチング構造が含まれています。
re.findall(pattern,string,flags)
例1:
import re
pattern=r'mr_\w+'
string='MR_SHOP mr_shop'
match=re.findall(pattern,string,re.I)
print(match)
結果
['MR_SHOP', 'mr_shop']
例2:
import re
string='项目名称MR_SHOP mr_shop'
match=re.findall(pattern,string,re.I)
print(match)
結果
['MR_SHOP', 'mr_shop']
注意:
import re
pattern=r'[1-9]{1,3}(\.[0-9]{1,3}){3}'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
print(match)
結果
['.1', '.66']
パケットが含まれている場合は指定されたパターン文字列のテキストリストは、パケットの試合で返されます。(即ちのみ括弧内のパターン文字列と一致します)
pattern=r'(\.[0-9]{1,3}){3}'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
print(match)
結果:
['.1', '.66']
ここ分析、パターン文字列([0-9] {1,3}){3}を意味します。
まず、[0-9]と\ dは意味が同一マッチ数を表明して、{1,3}は3回まで、少なくとも一度マッチ前の文字を表します。{3}三回前の文字に一致します。
ここにある:一致。(点)数と表面が3個まで一つまたは二つであってもよく、数字(0〜9任意であってもよい)の背後に開始します。すなわち、次のような状況:
0.05または0.66、または0.192など。
{3}三回、すなわち、三つの連続このタイプ、「127.0.0.1の192.168.1.66」、.0.0.1を見ても.168.1.66連続3回三回登場することができると一致します。だから、結果:[ '1' '66']。
パケットが一致した場合、以下のようにそれ以外の場合は内部の必要が読んで:
最初に書き込ま:
グループ化括弧の対を使用して、全体のパターン文字列を。そして最初の要素の各要素(タプル)のリストを返します。
import re
pattern=r'([1-9]{1,3}(\.[0-9]{1,3}){3})'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
for i in match:
print(i[0])
結果:
127.0.0.1
192.168.1.66
第二の方法:
プラス:?キャプチャで元のグループは、非キャプチャグループにグループを置きます。
import re
pattern=r'[1-9]{1,3}(?:\.[0-9]{1,3}){3}'
str1='127.0.0.1 192.168.1.66'
match=re.findall(pattern,str1)
print(match)
['127.0.0.1', '192.168.1.66']
完成しました...