Python爬虫類の正規表現
2990 ワード
1.正規表現
正規表現は特殊な文字列モードで、文字列のセットを一致させるために使用されます.例えば、金型で製品を作るのと同じです.正規表現はこの金型で、規則に合致する文字を一致させるルールを定義します.
2.正規表現の関連解釈
貪欲マッチング:正規表現は一般的に最大長マッチング、すなわちいわゆる貪欲マッチングに傾いている.パターンpを使用して文字列strをマッチングすると、abcaxc(abc)にマッチングします.欲張りでないマッチング:結果にマッチングすればいいので、マッチング文字が少なくなります.パターンpを用いて文字列strをマッチングすると、abc(abc)にマッチングする.デフォルトは欲張りモードです.量詞の後ろに直接疑問符をつけますか?非貪欲なパターンです一般的には非貪欲モードを使用する傾向があります.
3.Python reモジュールは正則に合わせて使用する
一般的な機能関数には、compile、search、match、split、findall、sub(subs)関数のプロトタイプがあります.
例:
結果は次のとおりです.
正則表現は以下の通りである.
構文
意味
説明
"."
任意の文字
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
正規表現は特殊な文字列モードで、文字列のセットを一致させるために使用されます.例えば、金型で製品を作るのと同じです.正規表現はこの金型で、規則に合致する文字を一致させるルールを定義します.
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。