在python中通过分隔符拆分字符串

Posted

技术标签:

【中文标题】在python中通过分隔符拆分字符串【英文标题】:Split a string by a delimiter in python 【发布时间】:2011-03-29 08:43:08 【问题描述】:

如何在__是分隔符的地方分割这个字符串

MATCHES__STRING

要获得['MATCHES', 'STRING']的输出?

【问题讨论】:

docs.python.org/library/stdtypes.html#str.split 值得阅读python标准文档并尝试理解其他人编写的少数程序以开始掌握Python基础知识。练习和复制/修改是学习语言的好工具。 【参考方案1】:

你可以使用str.split方法:string.split('__')

>>> "MATCHES__STRING".split("__")
['MATCHES', 'STRING']

【讨论】:

我想知道,第一个示例(仅使用 split())和第二个示例(使用 for 循环)有什么区别? @EndenDragon for 循环将自动应用x.strip() 并返回一个两边没有空格的匹配列表。魔鬼在细节中。 嘿,因为这是一个非常受欢迎的问题,我编辑它只问了一个特定的问题,并删除了分隔符周围有空格的部分,因为不清楚 OP 甚至预计会发生什么(因为问题中从来没有问题)。我认为这样的问题(和答案)更有用,但如果您不同意,请随时回滚所有编辑。【参考方案2】:

您可能对csv 模块感兴趣,该模块专为逗号分隔文件而设计,但可以轻松修改以使用自定义分隔符。

import csv
csv.register_dialect( "myDialect", delimiter = "__", <other-options> )
lines = [ "MATCHES__STRING" ]

for row in csv.reader( lines ):
    ...

【讨论】:

【参考方案3】:

如果字符串中有两个或更多(在下面的示例中为三个)元素,则可以使用逗号分隔这些项目:

date, time, event_name = ev.get_text(separator='@').split("@")

在这行代码之后,三个变量的值将来自变量ev

的三个部分

所以,如果变量 ev 包含这个字符串并且我们应用分隔符'@':

Sa., 23. März@19:00@Klavier + Orchester: SPEZIAL

那么,经过拆分操作后的变量

date 的值为“Sa., 23. März” 时间的值为“19:00” event_name 的值为“Klavier + Orchester: SPEZIAL”

【讨论】:

【参考方案4】:

对于 Python 3.8,您实际上不需要get_text 方法,您可以使用ev.split("@"),事实上get_text 方法正在抛出一个攻击。错误。 所以如果你有一个字符串变量,例如:

filename = 'file/foo/bar/fox'

您可以按照上述评论中的建议将其拆分为带有逗号的不同变量,但需要进行更正:

W, X, Y, Z = filename.split('_') 
W = 'file' 
X = 'foo'
Y = 'bar'
Z = 'fox'

【讨论】:

以上是关于在python中通过分隔符拆分字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在PHP中通过分隔符将字符串分解为多维数组

Python RE库字符串拆分,但将分隔符/分隔符保留为下一个字符串的一部分

按分隔符拆分字符串并跳过分隔符后跟某些字符的部分

如何在python中拆分具有多个分隔符的字符串? [复制]

Python:按分隔符列表拆分字符串

在 Python 字符串中的最后一个分隔符上拆分?