Python正则表达式字符串没有正确分割

时间:2013-06-27 23:39:15

标签: python regex split

我正在尝试拆分一行看起来像这样的文本

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正则表达式的新手

2 个答案:

答案 0 :(得分:3)

您正在使用str.split()。你想要的是re.split

re.split(r'\s+(?=[a-zA-Z]+=)', str)

这将分隔空格,后面跟着单词,后面紧跟=。请注意,您必须将除空格之外的所有内容放在前瞻中,以便分割操作不会吞下它。

答案 1 :(得分:0)

你的正则表达式中的?是按字面解析的,因为字符串中没有?,所以它不会被拆分。我认为你可能一直在进行正则表达式预测匹配,但string.split不支持正则表达式。


啊 - 太长时间看文档了! m.buettner总结得非常好。