Python爬虫類正規表現の常用記号と方法
正規表現はPythonの一部ではありません。正規表現は文字列を処理するための強力なツールで、独自の文法と独立した処理エンジンを持っています。この点のおかげで、正規表現を提供した言語では、正規表現の文法は同じであり、違いは異なるプログラミング言語でサポートされる文法の数が異なるだけである。しかし、心配しないでください。サポートされていない文法はよく使われていない部分です。
1、常用記号
.:任意の文字にマッチし、改行は除外されます。
:前の文字にマッチする0回または無限回
? :前の文字に0回または1回マッチします。
.*:欲張りアルゴリズムは、できるだけ多くの文字にマッチします。
*欲張りではないアルゴリズム
():括弧内のデータを結果として返します。
2、よく使う方法
findll:規則に合ったすべての内容にマッチし、結果を含むリストを返します。
Search:規則に合った最初の内容をマッチングして抽出し、正規表現のオブジェクトを返します。
Sub:法則に合った内容を置き換え、置換後の値を返します。
3、使用例
(1)の使用例は、任意の文字にマッチし、改行は除外します。
import re(※)ライブラリファイルの導入
a=「xy 123」
b=re.findll('x.',a)
print b
印刷の結果は「'xy 1'」で、各プレースホルダを表します。
(2)*の使用例は、前の文字に0回または無限回マッチします。
a=「xyxy 123」
b=re.findll('x*,a)
print b
印刷の結果は「'x',''x',''',''',''','」となります。
(3)の使用例は、前の文字に0回または1回マッチします。
a=「xy 123」
b=re.findll('x?')a)
print b
印刷の結果は,[x],''''',''''',''です。
(4)*の使用例
secret_code='hadkfalifexIxfasdjifja 134 xlovext 23455 sdfxxyouxx 8 dfse'
b=re.findll('xx.xx',secret_コード
print b
印刷の結果は、「xxxxxxfasdjifja 134 xlovext 23455 sdfxyouxx」です。
(5)*?の使用例
secret_code='hadkfalifexIxfasdjifja 134 xlovext 23455 sdfxxyouxx 8 dfse'
c=re.findll('xx.*?xx'secret_コード
print c
印刷の結果は、[xxxIxx]、[xxlove xx]、'xyouxx'です。
(6)()の使用例
secret_code='hadkfalifexIxfasdjifja 134 xlovext 23455 sdfxxyouxx 8 dfse'
d=re.findll('xx(.*?)xx'secret_コード
print d
印刷の結果は「'I','love','you'」となり、括弧内のデータは戻りの結果として返されます。
(7)RE.Sの使用例
s=''sdfxhello
xfsdfxxworld xasdf''
d=re.findll('xx(.*?)xx',s,re.S)
print d
印刷の結果は:''hello'、'world''で、RE.Sの役割は使います。マッチング時に含まれます。
(8)findllの使用例
s 2='asdfxxxxxxx 123 xlove xxxfd'
f 2=re.findll('xx(.?)xxxx 123 xx(.)xx',s 2)
print f 20
印刷の結果は、loveです。
このとき、f 2は一つのタプルを含むリストであり、このタプルは二つの要素を含み、このタプルの中の二つの要素は二つの()に一致する内容である。xxxx 123 xx(.)xx'のようなサブストリングは、f 2が複数の元グループを含む。
(9)searchの使用例
s 2='asdfxxxxxxx 123 xlove xxxfd'
f=re.search('xx(.?)xxxx 123 xx(.)xx',s 2).グループ(2)
print
印刷の結果は、loveです。
グループ(2)は、第二の括弧が一致した内容に戻ることを表します。グループ(1)であれば、印刷はIです。
(10)subの使用例
s='123 rrr 123'
out put=re.sub('123(.*?)123','123%d 123'%789,s)
print output
印刷の結果は123789123です。
その中の%dはC言語の%dと似ています。もしoutput=re.sub('123(.*?)123',123789123',s)出力結果も123789123です。
(11)\dの使用例は、数字にマッチするために使用されます。
a='asdfas f 1234567 fasd 555 fas'
b=re.findll('(\d+)',a)
print b
印刷の結果は「'1234567'、'555'」で、\d+は数字文字列にマッチすることができます。
以上はpython爬虫類の正規表現のいくつかの常用記号と文法で、python初心者の学習に対して役に立つことを望みます。
1、常用記号
.:任意の文字にマッチし、改行は除外されます。
:前の文字にマッチする0回または無限回
? :前の文字に0回または1回マッチします。
.*:欲張りアルゴリズムは、できるだけ多くの文字にマッチします。
*欲張りではないアルゴリズム
():括弧内のデータを結果として返します。
2、よく使う方法
findll:規則に合ったすべての内容にマッチし、結果を含むリストを返します。
Search:規則に合った最初の内容をマッチングして抽出し、正規表現のオブジェクトを返します。
Sub:法則に合った内容を置き換え、置換後の値を返します。
3、使用例
(1)の使用例は、任意の文字にマッチし、改行は除外します。
import re(※)ライブラリファイルの導入
a=「xy 123」
b=re.findll('x.',a)
print b
印刷の結果は「'xy 1'」で、各プレースホルダを表します。
(2)*の使用例は、前の文字に0回または無限回マッチします。
a=「xyxy 123」
b=re.findll('x*,a)
print b
印刷の結果は「'x',''x',''',''',''','」となります。
(3)の使用例は、前の文字に0回または1回マッチします。
a=「xy 123」
b=re.findll('x?')a)
print b
印刷の結果は,[x],''''',''''',''です。
(4)*の使用例
secret_code='hadkfalifexIxfasdjifja 134 xlovext 23455 sdfxxyouxx 8 dfse'
b=re.findll('xx.xx',secret_コード
print b
印刷の結果は、「xxxxxxfasdjifja 134 xlovext 23455 sdfxyouxx」です。
(5)*?の使用例
secret_code='hadkfalifexIxfasdjifja 134 xlovext 23455 sdfxxyouxx 8 dfse'
c=re.findll('xx.*?xx'secret_コード
print c
印刷の結果は、[xxxIxx]、[xxlove xx]、'xyouxx'です。
(6)()の使用例
secret_code='hadkfalifexIxfasdjifja 134 xlovext 23455 sdfxxyouxx 8 dfse'
d=re.findll('xx(.*?)xx'secret_コード
print d
印刷の結果は「'I','love','you'」となり、括弧内のデータは戻りの結果として返されます。
(7)RE.Sの使用例
s=''sdfxhello
xfsdfxxworld xasdf''
d=re.findll('xx(.*?)xx',s,re.S)
print d
印刷の結果は:''hello'、'world''で、RE.Sの役割は使います。マッチング時に含まれます。
(8)findllの使用例
s 2='asdfxxxxxxx 123 xlove xxxfd'
f 2=re.findll('xx(.?)xxxx 123 xx(.)xx',s 2)
print f 20
印刷の結果は、loveです。
このとき、f 2は一つのタプルを含むリストであり、このタプルは二つの要素を含み、このタプルの中の二つの要素は二つの()に一致する内容である。xxxx 123 xx(.)xx'のようなサブストリングは、f 2が複数の元グループを含む。
(9)searchの使用例
s 2='asdfxxxxxxx 123 xlove xxxfd'
f=re.search('xx(.?)xxxx 123 xx(.)xx',s 2).グループ(2)
印刷の結果は、loveです。
グループ(2)は、第二の括弧が一致した内容に戻ることを表します。グループ(1)であれば、印刷はIです。
(10)subの使用例
s='123 rrr 123'
out put=re.sub('123(.*?)123','123%d 123'%789,s)
print output
印刷の結果は123789123です。
その中の%dはC言語の%dと似ています。もしoutput=re.sub('123(.*?)123',123789123',s)出力結果も123789123です。
(11)\dの使用例は、数字にマッチするために使用されます。
a='asdfas f 1234567 fasd 555 fas'
b=re.findll('(\d+)',a)
print b
印刷の結果は「'1234567'、'555'」で、\d+は数字文字列にマッチすることができます。
以上はpython爬虫類の正規表現のいくつかの常用記号と文法で、python初心者の学習に対して役に立つことを望みます。