これまでは正確な質問をすることができませんでした。以下はpythonのfindallを使用して出力が得られない
私が探していますものです:
私は以下のようにファイルから文字列を読んでいると、ファイル内の文字列の複数のそのような種類があることができます。
" VEGETABLE 1
POTATOE_PRODUCE 1.1 1SIMLA(INDIA)
BANANA 1.2 A_BRAZIL(OR INDIA)
CARROT_PRODUCE 1.3 A_BRAZIL/AFRICA"
findallのみを使用して、文字列全体を出力として取り込みたいとします。
マイスクリプト:
上記のスクリプトは、出力を与えている
import re
import string
f=open('log.txt')
contents = f.read()
output=re.findall('(VEGETABLE.*)(\s+\w+\s+.*)+',contents)
print output
[( 'VEGETABLE 1'、 '\ nはCARROT_PRODUCE 1.3 A_BRAZIL/AFRICA')]
しかしなどのコンテンツ間には欠けている。
コードのインデントを読みやすくすることができますか? – MooingRawr
*検索* 're.search( '(\ d \ s +)(\ w + \ s)+'、str2)'はなぜですか? –
'(\ d \ s +)(\ w + \ s)'は1つのマッチであり、次のマッチでは '(\ d \ s +)'の部分が欠落しているためです。 – nauer