我正在尝试拆分一行看起来像这样的文本
host=randomhostid123 moreinfo id=otherstuffhere version="morestuff" type=TYPEA::TYPEB
我想用split来解析它到
host=randomhostid123 moreinfo
id=otherstuffhere
version="morestuff"
type=TYPEA::TYPEB
这样做我正在使用
str.split('?[a-zA-Z]*=')
但所有这一切都是原始字符串重新出现 我认为正则表达式看起来不错,但我是python正则表达式的新手
答案 0 :(得分:3)
您正在使用str.split()
。你想要的是re.split
:
re.split(r'\s+(?=[a-zA-Z]+=)', str)
这将分隔空格,后面跟着单词,后面紧跟=
。请注意,您必须将除空格之外的所有内容放在前瞻中,以便分割操作不会吞下它。
答案 1 :(得分:0)
你的正则表达式中的?
是按字面解析的,因为字符串中没有?
,所以它不会被拆分。我认为你可能一直在进行正则表达式预测匹配,但string.split
不支持正则表达式。
啊 - 太长时间看文档了! m.buettner总结得非常好。