在Python中解析TCL列表

我需要在双括号上拆分以空格分隔的TCL列表…例如……

OUTPUT = """{{172.25.50.10:01:01-Ethernet 172.25.50.10:01:02-Ethernet {Traffic Item 1}}} {{172.25.50.10:01:02-Ethernet 172.25.50.10:01:01-Ethernet {Traffic Item 1}}}"""

这应该解析成……

OUTPUT = ["""{{172.25.50.10:01:01-Ethernet 172.25.50.10:01:02-Ethernet {Traffic Item 1}}}""", 
    """{{172.25.50.10:01:02-Ethernet 172.25.50.10:01:01-Ethernet {Traffic Item 1}}}"""]

我试过了…

import re
splitter = re.compile('}}\s+{{')
splitter.split(OUTPUT)

然而,修剪中心的牙箍……

['{{172.25.50.10:01:01-Ethernet 172.25.50.10:01:02-Ethernet {Traffic Item 1}',
'172.25.50.10:01:02-Ethernet 172.25.50.10:01:01-Ethernet {Traffic Item 1}}}']

我无法弄清楚如何只分割}} {{之间的空格.我知道我可以手动欺骗并插入缺少的大括号,但我宁愿找到一种简单的方法来有效地解析它.

有没有办法用re.split(或其他一些python解析框架)解析包含{{content here}}的任意数量的以空格分隔的行的OUTPUT?

解决方法:

你可以修改你的正则表达式使用正向前瞻/后面的断言,它不消耗任何字符串:

re.compile('(?<=}})\s+(?={{)')
上一篇:tcl 正则匹配与替换


下一篇:linux – 加载libtdbcmysql1.0.0.so失败了