Python正则表达式字符串未正确拆分

2024-04-26 05:01:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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正则表达式还不熟悉


Tags: 字符串文本idhostversiontypesplitstr
2条回答

您正在使用^{}。你想要的是^{}

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

这将在紧跟着单词的空格上进行拆分,而单词又紧跟着=。请注意,您必须将除空格以外的所有内容都放在前瞻中,以便它不会被拆分操作吞没。你知道吗

正则表达式中的?被逐字解析,由于字符串中没有?,所以它不会被拆分。我想您可能是想使用regex lookahead匹配,但是string.split不支持regex。你知道吗


啊看文档太久了!m、 布特纳很好地总结了事情。你知道吗

相关问题 更多 >