如何使用正则表达式将多行文本块解析为字典?

字段 210

我有这个多行文本:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式匹配多行文本块

您如何使用正则表达式来解析日志文件中的多行文本?

Java ::使用正则表达式解析多行文本

正则表达式将文本解析为参数

Python正则表达式匹配多行文本

正则表达式不包含多行文本

Vbscript多行文本的正则表达式?

正则表达式搜索多行文本

正则表达式将多行文本作为单字符串PHP处理

使用正则表达式匹配多行文字

使用正则表达式将韩文文本解析为列表

在Shell脚本中查找多行文本并使用正则表达式替换

正则表达式匹配单行文本,但是不匹配多行文本吗?

如何使用正则表达式提取文本块而不将文本块分成几行

如何使用正则表达式或工具包将句子解析为标记

用正则表达式将自由文本解析为字典

使用正则表达式解析一行文本中的字符

如何使用正则表达式将文本设置为小写?

使用正则表达式在多行上解析 Html

使用正则表达式解析多行日志条目

使用正则表达式将多行脚本输出转换为字典

如何使用JavaScript正则表达式捕获CSS多行注释块

如何将正则表达式显示为纯文本而不是将其解析为PHP

如何用正则表达式表示文本块?

使用正则表达式在块中查找文本

使用正则表达式将自定义日志文件解析为字典

如何在jQuery中对多行文本4x35进行正则表达式验证

如何获得带有匹配正则表达式的多行文本的最后一行?

如何使用正则表达式提取整行文本?