Pythonでregexを使って文字列内の一致する文字列を検索しようとしています。 string
は次のようになります。python regex一致する文字列を見つける
band 1 # energy -53.15719532 # occ. 2.00000000
ion s p d tot
1 0.000 0.995 0.000 0.995
2 0.000 0.000 0.000 0.000
tot 0.000 0.996 0.000 0.996
band 2 # energy -53.15719532 # occ. 2.00000000
ion s p d tot
1 0.000 0.995 0.000 0.995
2 0.000 0.000 0.000 0.000
tot 0.000 0.996 0.000 0.996
band 3 # energy -53.15719532 # occ. 2.00000000
私の目標は、tot
後の文字列を見つけることです。だから、マッチした文字列は次のようになります。ここでは
['0.000 0.996 0.000 0.996',
'0.000 0.996 0.000 0.996']
私の現在のコードです:
pattern = re.compile(r'tot\s+(.*?)\n', re.DOTALL)
pattern.findall(string)
ただし、出力は私を与える:
['1 0.000 0.995 0.000 0.995',
'0.000 0.996 0.000 0.996',
'1 0.000 0.995 0.000 0.995',
'0.000 0.996 0.000 0.996']
私がやっているものの任意のアイデアを違う?
これは私の問題を解決します。私は 'DOTALL'と' MUTILINE'について混乱していると思う。それについてもっと読む必要があります。 –