ホームページ >バックエンド開発 >Python チュートリアル >Pythonの通常のグループ化の応用

Pythonの通常のグループ化の応用

WBOY
WBOYオリジナル
2016-06-16 08:46:151465ブラウズ

コードをコピー コードは次のとおりです:

import re
text='V101_renow.Android.2.2.Normal .1. Alpha.apk?IMSI=460029353813976&MOBILE=&OLD_VERSION=renow.Android.2.1.Normal.1.Alpha&CHANNELID=3'
m = re.search(r"w+_(renow.*).(apk| vir|ipa )?IMSI=(d+)&MOBILE=&OLD_VERSION=(.*)&CHANNELID=(.*)", text)
if m:
Print m.group(0), 'n', m .group( 1),'n', m.group(2),'n', m.group(3),'n', m.group(4),'n', m.group(5)
else :
print 'not match'


以下は補足です:

グループは「(」と「)」メタキャラクターによって識別されます。 「(」と「)」は数式内でほぼ同じ意味を持ち、それらは数式内の式をグループ化します。たとえば、 *、+、?、{m,n} などの繰り返し修飾子を使用して、グループの内容を繰り返すことができます。たとえば、 (ab)* は 0 回以上の "ab" の繰り返しに一致します。

例: 括弧が導入されておらず、式がグループとして追加された場合、それは group(0)

>>> インポート
>>> p=re.compile('d-d-d')
>>> 3-1')
>>>m.groups()
()
>m.group()
'2-3-1'
>>> m.group(1)
トレースバック (最後の呼び出し):
ファイル ""、行 1、
インデックスエラー: 該当しませんグループ

括弧を導入すると、上記の式は次の 3 つのグループに分類できます

>>> p=re.compile('(d)-(d)-(d)')
>>> m=p.match('1-2-3 ')
>>> m.group()
'1-2-3'
>>> m.group(1)
'1'
>>> m.group(0,2,1)
('2-3-1', '2', '1')

各グループに名前を付けることもできます。たとえば、最初の配列に最初に名前を付けます


>>> p=re.compile('(?Pd)-(d)-(d)')
>>> match('1-2-3')
>>> m.group(1)
'1'
>m.group('first')

'1'

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。