有用なデータを抽出したいファイルが与えられました。ファイルの形式は次のようになります。
LINE: 1
TOKENKIND: somedata
TOKENKIND: somedata
LINE: 2
TOKENKIND: somedata
LINE: 3
等...
私がやりたいのは、LINE:と行番号およびTOKENKIND:を削除することです。そのため、「somedatasomedatesomedata...」で構成される文字列が残ります。
私はこれを行うためにPythonを使用しており、削除したいファイルのビットと一致する正規表現(正しいかどうかはわかりません)を使用しています。
私の質問は、Pythonで複数の正規表現グループを一致させてそれらを無視し、正規表現と一致しないものを出力文字列に追加するにはどうすればよいですか?私の現在のコードは次のようになります。
import re
import sys
ignoredTokens = re.compile('''
(?P<WHITESPACE> \s+ ) |
(?P<LINE> LINE:\s[0-9]+ ) |
(?P<TOKEN> [A-Z]+: )
''', re.VERBOSE)
tokenList = open(sys.argv[1], 'r').read()
cleanedList = ''
scanner = ignoredTokens.scanner(tokenList)
for line in tokenList:
match = scanner.match()
if match.lastgroup not in ('WHITESPACE', 'LINE', 'TOKEN'):
cleanedList = cleanedList + match.group(match.lastindex) + ' '
print cleanedList