マーキングのpython正規表現のパケット

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 ?)

公開された127元の記事 ウォン称賛10 ビュー240 000 +

おすすめ

転載: blog.csdn.net/u012599545/article/details/104526527
おすすめ