Python Regex命名组

2024-06-01 22:57:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在尝试解决一个问题,分裂下面的字符串

[@x arg-xa, arg. xb, arg xc @y arg-ya, arg. yb, arg yc @z arg-za, arg. zb, arg zc]

变成某种结构化的dict对象。如能得到如下所示的结果,我们将不胜感激:

^{pr2}$

命令后面有一个“@”的前缀“@”。 将字符串拆分为字符串.拆分('@')和一些循环可以工作,但是我想知道是否可以用一个正则表达式来解决这个问题。在

也许某个正则表达式大师会这么好,给我看光!在

一如既往,非常感谢。 (我使用了搜索,但没有找到解决此类问题的方法)


Tags: 对象字符串argzcdict结构化xczb
1条回答
网友
1楼 · 发布于 2024-06-01 22:57:23

我只需使用.split()并将字符串切掉:

import string

s = '@x arg-xa, arg. xb, arg xc @y arg-ya, arg. yb, arg yc @z arg-za, arg. zb, arg zc'

result = []

for part in s.split('@')[1:]:  # `[1:]` skips the first (empty) element
    command, _, arguments = part.partition(' ')

    result.append({
        'command': command,
        'args': map(string.strip, arguments.split(', '))
    })

相关问题 更多 >