Python爬虫類の正規表現

2990 ワード

1.正規表現
正規表現は特殊な文字列モードで、文字列のセットを一致させるために使用されます.例えば、金型で製品を作るのと同じです.正規表現はこの金型で、規則に合致する文字を一致させるルールを定義します.
2.正規表現の関連解釈
貪欲マッチング:正規表現は一般的に最大長マッチング、すなわちいわゆる貪欲マッチングに傾いている.パターンpを使用して文字列strをマッチングすると、abcaxc(abc)にマッチングします.欲張りでないマッチング:結果にマッチングすればいいので、マッチング文字が少なくなります.パターンpを用いて文字列strをマッチングすると、abc(abc)にマッチングする.デフォルトは欲張りモードです.量詞の後ろに直接疑問符をつけますか?非貪欲なパターンです一般的には非貪欲モードを使用する傾向があります.
3.Python reモジュールは正則に合わせて使用する
一般的な機能関数には、compile、search、match、split、findall、sub(subs)関数のプロトタイプがあります.
pattern = re.compile(string[,flag])  
re.match(pattern, string[, flags])
re.search(pattern, string[, flags])
re.split(pattern, string[, maxsplit])
re.findall(pattern, string[, flags])
re.finditer(pattern, string[, flags])
re.sub(pattern, repl, string[, count])
re.subn(pattern, repl, string[, count])

例:
import re

pattern = re.compile(r'abc')

result1 = re.match(pattern,'abc')
result2 = re.match(pattern,'abc CQC')
result3 = re.match(pattern,'ab CQC')
result4 = re.match(pattern,'abc CQC')

if result1:
    print result1.group()
else:
    print '1fail'
if result2:
    print result2.group()
else:
    print '2fail'
if result3:
    print result3.group()
else:
    print'3fail'
if result4:
    print result4.group()
else:
    print '4fail'

結果は次のとおりです.
abc
abc
3fail
abc

正則表現は以下の通りである.
構文
意味
説明
"."
任意の文字
a.c--->abc
"^"
文字列の先頭
'hello'マッチング'helloword'不マッチング'aaahello'
"$"
文字列の末尾
末尾文字列のみ一致
"*"
前の文字に0回または無限回一致
abc*--->abまたはabccc
"+"
前の文字に1回または無限に一致
abc+--->abcまたはabccc
"?"
前の文字に0回または1回一致
abc?--->abまたはabc
"{m}"
前の文字列m回に一致
ab{3}c--->abbbc
"{m,n}"
前の文字列m~n回の一致
ab{1,2}c--->abcまたはabbc
"\A"
文字列の先頭のみ一致
\Aabc--->abc
"\Z"
文字列の末尾のみ一致
abc\Z--->abc
  :
1.string:         。
2.re:       Pattern  。
3.pos:                。  Pattern.match() Pattern.seach()         。
4.endpos:                。  Pattern.match() Pattern.seach()         。
5.lastindex:                  。          ,  None。
6.lastgroup:              。                    ,  None。
  :
1.group([group1, …]):
               ;               。group1             ;  0         ;      ,  group(0);           None;                  。
2.groups([default]):
                 。     group(1,2,…last)。default                 ,   None。
3.groupdict([default]):
             、             ,           。default    。
4.start([group]):
            string      (          )。group    0。
5.end([group]):
            string      (           +1)。group    0。
6.span([group]):
  (start(group), end(group))。
7.expand(template):
         template     。template     \id \g、\g    ,       0。\id \g    ; \10      10   ,      \1     ’0’,    \g0。