文字列が与えられた場合、正確に4桁のすべてのシーケンスを抽出するにはどうすればよいですか?
つまり、1234 12 12345 1bc5 9876
取得したいからです[1234, 9876]
。
まではre.findall('\D\d\d\d\d\D')
到達しましたが、テキストの境界では失敗します(一致の前後に文字がない場合)。
解決策はPython2.7を使用することが望ましいですが、これはかなり一般的だと思います。どの言語でもかまいません。
一般的な答えは驚くほど複雑です。詳細については、こちらをご覧ください。ただし、この特定のケースでは、単語境界アサーションを使用できます\b
。
re.findall(r'\b\d{4}\b', ....)