我目前正在尝试解决在字符串
之后拆分的问题[@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('@')分割字符串和一些循环可以工作,但我想知道是否有可能用一个正则表达式来解决这个问题。
也许一些正则表达的大师会如此善良并向我展示光明!
一如既往,非常感谢。 (我使用了搜索,但没有找到解决此类问题的方法)
答案 0 :(得分:2)
我只是使用.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(', '))
})