1(?:...)
これは、保存せずに、パケットの一致を表し、
>>> a = '123dd'
>>> re.match('(?:\d+)', a).groups()
()
>>> re.match('(\d+)', a).groups()
('123',)
>>>
2(?P ...)
内容を表す使うラベルが一致し、注意はこちら)(groupdictです
>>> re.match('(?P<data>\d+)', a).groupdict()
{'data': '123'}
>>>
3(?P =名)
以前の参照は、タグに一致しています
>>> a = '123dd123'
>>> re.match('(?P<data>\d+)dd(?P=data)$', a).groupdict()
{'data': '123'}
>>>
上記の例では、第1データ123、基準データ後でマッチングデータに、我々は一致する必要がそれほど
4(?#...)
コメントを表示し、すべての内容は無視されます
>>> re.match('(?P<data>\d+).*?(?#this is coment)', a).groupdict()
{'data': '123'}
>>>
5(?= ...)
アサーションとして正の前方に、。...右側の照合時に部分式がこの位置に一致する場合にのみ続けます。例えば、\ W +(?= \ D)とワードマッチの数が続くが、デジタルと一致しません
>>> re.match('\w+(?=\d)', 'aa123').group()
'aa12'
図から分かるように、試合は単一のデジタルコンテンツの前にあります
6(?!...)
前方の負のアサーションを依存します。唯一の部分式の場合...ない一致するように、右側にこの位置に一致し続けます。このような\単語ではなく数字を合わせるよりも、数字と一致しないのw +(?!\ D)の後に、例えば、として、
>>> re.match('\w+(?!\d)', 'aa12.3').group()
'aa12'
>>>
7(?<= ...)
フォワードリアビュー表明。...の部分式がこの位置に一致した場合にのみ、継続したときに試合の左側。例えば、(?<= 19)及び背面19に実施例99と99試合
>>> re.search('(?<=95|98|NT)Windows', '95Windows')
<_sre.SRE_Match object; span=(2, 9), match='Windows'>
8(?<!...)
負のアサーション後方によります。場合にのみ、左側のサブ表現はない...この位置の試合でマッチングを続けます。例えば、(?<!19)は、実施例99と99は19試合の後ろではありません
>>> re.search('(?<!95|98|NT)Windows', 'aaWindows')
<_sre.SRE_Match object; span=(2, 9), match='Windows'>
9(?(ID /名)Y | N)
供給されたパケットのIDまたは名前が存在する場合は、Yと一致する正規表現の状態に戻り、そうでない場合、Nに戻り、| Nは任意であり
、例えば:((1)Y | X ?)