我希望以[key]值格式从文本中获取键和值:
例如,
[AA] abcd 1234 !@#$ _+{}[]:"
blah blah
[abc-def] this is also value.
[BB]abcd defg
[CC]
blah blah
blah blah
在这种情况下,我希望得到以下对。
' AA' :' abcd 1234!@#$ _ + {}:" blah blah'
' ABC-DEF' :'这也是价值。'
' BB' :' abcd defg'
' CC' :''
我的Python代码是这样的:
import re
text ='''
[AA] abcd 1234 !@#$ _+{}:"
blah blah
[abc-def] this is also value.
[BB]abcd defg
[CC]
blah blah
blah blah
'''
pattern = re.compile(this is what I want)
result = {m.group('field'):m.group('value') for m in pattern.finditer(text)}
这可能吗?
答案 0 :(得分:0)
我认为你不需要正则表达式。
with open('input_file.txt', 'r') as f:
lines = f.readlines()
storage = {}
for line in lines:
split = line.split(']')
key = split[0][1:]
value = split[1:]
storage[key] = value
我们在这里做的是将每一行分成第一个']'发生了。该分割的第0个元素将是' [key',所以我们取第0个元素,从该元素的第1个位置到结尾,产生'键'。然后该值就是拆分的其余部分。