【发布时间】:2014-12-10 09:34:33
【问题描述】:
如何定义字符串分隔符以最有效的方式进行拆分?我的意思是不需要使用很多 if 等?
我有需要严格拆分为两个元素列表的字符串。问题是那些字符串有不同的符号,我可以用它们来分割它们。例如:
'Hello: test1'。这个有分割分隔符': '。另一个例子是:
'Hello - test1'。所以这个是' - '。拆分分隔符也可以是' -' 或'- '。因此,如果我知道分隔符的所有变体,我如何才能最有效地定义它们?
首先我做了这样的事情:
strings = ['Hello - test', 'Hello- test', 'Hello -test']
for s in strings:
delim = ' - '
if len(s.split('- ', 1)) == 2:
delim = '- '
elif len(s.split(' -', 1)) == 2:
delim = ' -'
print s.split(delim, 1)[1])
但后来我得到了具有另一个意外分隔符的新字符串。所以这样做我应该添加更多的 if 来检查其他分隔符,比如': '。但是后来我想知道是否有更好的方法来定义它们(如果我以后需要在某种列表中包含新的定界符,这没有问题)。也许正则表达式会有所帮助或其他一些工具?
【问题讨论】: