首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python :使用多个字符拆分字符串

Python :使用多个字符拆分字符串
EN

Stack Overflow用户
提问于 2014-01-30 00:10:33
回答 5查看 143关注 0票数 0

我有以下输入:

代码语言:javascript
运行
复制
"auth-server $na me$ $1n ame$ [position [$pr io$]] xxxx [match-fqdn [[$fq dn$] [all]]]"

我需要将它们存储在一个列表中,并使用$<>作为分隔符。

预期输出:

代码语言:javascript
运行
复制
['auth-server', '$na me$', '$1n ame$', '[position', '[$pr io$]]', 'xxxx', '[match-fqdn', '[[$fq dn$]', '[all]]]']

我该怎么做呢?

EN

回答 5

Stack Overflow用户

发布于 2014-01-30 00:18:58

您可以做的是在空格上拆分它,然后遍历每个子字符串,并检查它是否以某个特殊分隔符开头。如果是,则开始一个新字符串,并追加后续字符串,直到到达末尾分隔符。然后删除这些子字符串并将其替换为新的子字符串。

票数 3
EN

Stack Overflow用户

发布于 2014-01-30 00:31:38

我想你想要的是

代码语言:javascript
运行
复制
import re
re.split(r"(?<=\]) | (?=\$|\[)", "auth-server $na me$ $1n ame$ [position [$pr io$]] xxxx [match-fqdn [[$fq dn$] [all]]]")

这就产生了

代码语言:javascript
运行
复制
['auth-server', '$na me$', '$1n ame$', '[position', '[$pr io$]]', 'xxxx', '[match-fqdn', '[[$fq dn$]', '[all]]]']

但是请注意,这并不完全是您所描述的,而是与您的示例相匹配的。当空格前面是]或后面是$[时,您似乎想要在空格上拆分。

票数 1
EN

Stack Overflow用户

发布于 2014-01-30 00:36:23

试试re.split和一个能让人痛哭的正则表达式

代码语言:javascript
运行
复制
import re
print re.split(r'(\$[^\$]+\$|\[\S+([^\]]+\]\])?|[-0-9a-zA-Z]+)',"auth-server $na me$ $1n ame$ [position [$pr io$]] xxxx [match-fqdn [[$fq dn$] [all]]]")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21436443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档