繁体   English   中英

Python正则表达式命名组

[英]Python Regex Named Groups

我正在尝试解决分裂后跟字符串的问题

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

到某种结构化的dict对象。 如下列表的结果将不胜感激:

[
    {
        'command': 'x',
        'args': ['arg-xa', 'arg. xb', 'arg xc']
    },
    {
        'command': 'y',
        'args': ['arg-ya', 'arg. yb', 'arg yc']
    }
    {
        'command': 'z',
        'args': ['arg-za', 'arg. zb', 'arg zc']
    }
]

该命令带有“@”符号前缀,该命令的以下参数由“,”符号分隔。 用string.split('@')分割字符串和一些循环可以工作,但我想知道是否有可能用一个正则表达式来解决这个问题。

也许一些正则表达的大师会如此善良并向我展示光明!

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

我只是使用.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(', '))
    })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM