我有这个多行文本:
1. fef w fwe fwe
fewfa 2. fwa f
fwefwfw gw
2 2f 23. f
g gegwg
32. gre34 g3 1. gr
egsg
我想使用行首的数字作为键(使用.
或作为分隔符)。
结果字典需要是:
{
"1": "fef w fwe fwe fewfa 2. fwa f fwefwfw gw",
"2": "2f 23. f g gegwg",
"32": "gre34 g3 1. gr egsg"
}
您可以使用此正则表达式:
/^(\d+)\.?\s+(.*?)(?=(?:^\d+\.?)|\Z)/gms
^ assert start of line
^ capture 1 or more digits
^ optional literal .
^ one or more spaces
^ every character including \n
^ lookahead to next block start or end
^ flags M for multiline and S to have
dot match all
然后你可以像这样创建字典:
>>> dict(re.findall(r'^(\d+)\.?\s+(.*?)(?=(?:^\d+\.?)|\Z)', s, re.M|re.S))
{'1': 'fef w fwe fwe\nfewfa 2. fwa f\nfwefwfw gw\n', '32': 'gre34 g3 1. gr\negsg', '2': '2f 23. f\ng gegwg\n'}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句