import re
ip6 = "1234:0678:0000:0000:00cd:0000:0000:0000"
zeroes = re.search("(:?0000)+", ip6)
print zeroes.group(0)
:0000:0000
私は、コロンで区切られた4つのゼロの最長シーケンスを探しています。文字列には3つのグループのシーケンスが含まれていますが、2つのグループだけが印刷されます。どうして?Python re.search()が完全なグループ一致を返さない
EDIT:0000::それは印刷だ0000それは文字列の最初の試合だから - しかし、私はいつも最長マッチを探した正規表現を考えましたか? Pythonの2.6で動作するように更新
が変更使用についてのPython 2.7.3
を使用しています(^ 0000 |:0000)(?:0000)に –
実際には、NFAの正規表現エンジン(Pythonのようなものなど)は常に "最も長い、_left-most_"の一致を返します。 – ridgerunner
@ridgerunnerそれのためのソース? –