使用正则表达式将字符串分解为具有键和值的字典

斯坦尼斯洛斯

我正在尝试将此列表变成完整的词典列表。下面,我提供了我正在使用的完整列表的摘要。

以第4.1行为例,我想要:

  • 键为行号('4.1')
  • 包含标题的值(“公司占用的属性(减去$ 43,332,898 \ nencumbrances”))
  • 以及后面的四个数字作为列表['68,122,291','0','68,122,291','64,237,046']。

我了解了如何将每个单独的字典放在一起的一般循环。我正在努力的地方是想出正则表达式模式来获取行标题和行值。这很困难,因为某些行标题还包含数字。另一个问题是,并非所有行的末尾都有四个数字。对于这些情况,我只想要可用的数字。任何帮助找出正则表达式来抓住这些帮助。

    clean = ['4.1 Properties occupied by  the company (less $  43,332,898 \nencumbrances)  68,122,291  0  68,122,291  64,237,046 \n',
         '4.2 Properties held for  the production of income (less \n $    encumbrances)  0  0   0  0 \n',
         '4.3 Properties held for sale (less $  \nencumbrances)      0  0 \n',]
    
    clean_list = []
    
    for n in clean:
        row_num = re.findall(r'\d+\.',n)
        row_title = 
        row_values = 
        new_dict = {row_num: row_title, row_values}
        clean_list.append(new_dict)
亭子

不确定为什么要为每行单独使用一个字典,每个字典只有一个键。我认为以一本带有多个键的字典结尾会更有用。

d = {}
for line in clean:
    parts = re.match(r"^([\d.]+)\s+(.*?)\s+(\d[\d,.]*)\s*(?:(\d[\d,.]*)\s*)?(?:(\d[\d,.]*)\s*)?(?:(\d[\d,.]*)\s*)?$",
            line, re.DOTALL)
    code, title, *values = parts.group(1,2,3,4,5,6)
    d[code] = (title, list(filter(None, values)))

对于样本数据,的值为d

{
  '4.1': (
    'Properties occupied by  the company (less $  43,332,898 \nencumbrances)', 
    ['68,122,291', '0', '68,122,291', '64,237,046']
  ), 
  '4.2': (
    'Properties held for  the production of income (less \n $    encumbrances)',
    ['0', '0', '0', '0']
  ), 
  '4.3': (
    'Properties held for sale (less $  \nencumbrances)', 
    ['0', '0']
  )
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用正则表达式将字符串分解为多维

来自分类Dev

正则表达式将字符串分解为名字,姓氏和位置

来自分类Dev

无需使用正则表达式即可将Kotlin字符串有效地分解为固定长度的子字符串

来自分类Dev

正则表达式将非空格字符串分解为Java中的单个字符和数字块

来自分类Dev

正则表达式将非空格字符串分解为Java中的单个字符和数字块

来自分类Dev

正则表达式:使用dict理解和正则表达式将字符串转换为字典

来自分类Dev

将具有正则表达式的文本解析为结果为空字符串的列表

来自分类Dev

linq查询中使用的字符串函数是否分解为查询表达式?

来自分类Dev

为什么不能使用正则表达式将字符串验证为映射键?

来自分类Dev

在JS中使用正则表达式在键字符串后将值从html主体中隔离出来

来自分类Dev

如何使用正则表达式更改具有特定值的字符串中的值?

来自分类Dev

用键和值将字符串分解为数组

来自分类Dev

使用正则表达式将字符串分割为每个特殊字符

来自分类Dev

使用正则表达式搜索具有特殊字符的子字符串

来自分类Dev

PHP将字符串键分解为带有值的多维数组

来自分类Dev

PHP将字符串键分解为带有值的多维数组

来自分类Dev

将管道分隔符字符串分解为具有名称和值的数组

来自分类Dev

PHP将字符串解析为带有正则表达式的数组

来自分类Dev

如何使用正则表达式将组值替换为空字符串

来自分类Dev

使用带有正则表达式的Notepad ++将字符串(具有可变文件名)替换为其他字符串

来自分类Dev

如何使用带有Access和VBA的正则表达式匹配字符串

来自分类Dev

如何使用带有Access和VBA的正则表达式匹配字符串

来自分类Dev

使用正则表达式分解带括号的字符串

来自分类Dev

正则表达式区分字符串键

来自分类Dev

如何将正则表达式模式存储为正则表达式对象或字符串?

来自分类Dev

如何将正则表达式模式存储为正则表达式对象或字符串?

来自分类Dev

具有字符限制、特定起始字符和终止的字符串的正则表达式匹配

来自分类Dev

如何将map与具有正则表达式键的字典一起使用?

来自分类Dev

正则表达式:为字符串编辑正则表达式

Related 相关文章

  1. 1

    用正则表达式将字符串分解为多维

  2. 2

    正则表达式将字符串分解为名字,姓氏和位置

  3. 3

    无需使用正则表达式即可将Kotlin字符串有效地分解为固定长度的子字符串

  4. 4

    正则表达式将非空格字符串分解为Java中的单个字符和数字块

  5. 5

    正则表达式将非空格字符串分解为Java中的单个字符和数字块

  6. 6

    正则表达式:使用dict理解和正则表达式将字符串转换为字典

  7. 7

    将具有正则表达式的文本解析为结果为空字符串的列表

  8. 8

    linq查询中使用的字符串函数是否分解为查询表达式?

  9. 9

    为什么不能使用正则表达式将字符串验证为映射键?

  10. 10

    在JS中使用正则表达式在键字符串后将值从html主体中隔离出来

  11. 11

    如何使用正则表达式更改具有特定值的字符串中的值?

  12. 12

    用键和值将字符串分解为数组

  13. 13

    使用正则表达式将字符串分割为每个特殊字符

  14. 14

    使用正则表达式搜索具有特殊字符的子字符串

  15. 15

    PHP将字符串键分解为带有值的多维数组

  16. 16

    PHP将字符串键分解为带有值的多维数组

  17. 17

    将管道分隔符字符串分解为具有名称和值的数组

  18. 18

    PHP将字符串解析为带有正则表达式的数组

  19. 19

    如何使用正则表达式将组值替换为空字符串

  20. 20

    使用带有正则表达式的Notepad ++将字符串(具有可变文件名)替换为其他字符串

  21. 21

    如何使用带有Access和VBA的正则表达式匹配字符串

  22. 22

    如何使用带有Access和VBA的正则表达式匹配字符串

  23. 23

    使用正则表达式分解带括号的字符串

  24. 24

    正则表达式区分字符串键

  25. 25

    如何将正则表达式模式存储为正则表达式对象或字符串?

  26. 26

    如何将正则表达式模式存储为正则表达式对象或字符串?

  27. 27

    具有字符限制、特定起始字符和终止的字符串的正则表达式匹配

  28. 28

    如何将map与具有正则表达式键的字典一起使用?

  29. 29

    正则表达式:为字符串编辑正则表达式

热门标签

归档