Answers:
"2.7.0_bf4fda703454".split("_")
给出字符串列表:
In [1]: "2.7.0_bf4fda703454".split("_")
Out[1]: ['2.7.0', 'bf4fda703454']
这会在每个下划线处拆分字符串。如果要在第一次拆分后停止它,请使用"2.7.0_bf4fda703454".split("_", 1)
。
如果您知道字符串中包含下划线,那么您甚至可以将LHS和RHS解压缩为单独的变量:
In [8]: lhs, rhs = "2.7.0_bf4fda703454".split("_", 1)
In [9]: lhs
Out[9]: '2.7.0'
In [10]: rhs
Out[10]: 'bf4fda703454'
另一种方法是使用partition()
。用法与上一个示例类似,不同之处在于它返回三个组件而不是两个。主要优点是,如果字符串不包含分隔符,则此方法不会失败。
在空间上分割字符串,获取列表,显示其类型,然后打印出来:
el@apollo:~/foo$ python
>>> mystring = "What does the fox say?"
>>> mylist = mystring.split(" ")
>>> print type(mylist)
<type 'list'>
>>> print mylist
['What', 'does', 'the', 'fox', 'say?']
如果两个相邻的定界符相邻,则假定为空字符串:
el@apollo:~/foo$ python
>>> mystring = "its so fluffy im gonna DIE!!!"
>>> print mystring.split(" ")
['its', '', 'so', '', '', 'fluffy', '', '', 'im', 'gonna', '', '', '', 'DIE!!!']
在下划线处分割字符串,并获取列表中的第五项:
el@apollo:~/foo$ python
>>> mystring = "Time_to_fire_up_Kowalski's_Nuclear_reactor."
>>> mystring.split("_")[4]
"Kowalski's"
将多个空格合为一个
el@apollo:~/foo$ python
>>> mystring = 'collapse these spaces'
>>> mycollapsedstring = ' '.join(mystring.split())
>>> print mycollapsedstring.split(' ')
['collapse', 'these', 'spaces']
当您不向Python的split方法传递任何参数时,文档指出:“连续的空白行被视为单个分隔符,如果字符串的开头或结尾是空白,则结果在开头或结尾将不包含空字符串”。
抓住男孩们的帽子,解析一个正则表达式:
el@apollo:~/foo$ python
>>> mystring = 'zzzzzzabczzzzzzdefzzzzzzzzzghizzzzzzzzzzzz'
>>> import re
>>> mylist = re.split("[a-m]+", mystring)
>>> print mylist
['zzzzzz', 'zzzzzz', 'zzzzzzzzz', 'zzzzzzzzzzzz']
正则表达式“[AM] +”装置中的小写字母a
通过m
发生一次或多次被作为分隔符相匹配。re
是要导入的库。
或者,如果您想一次将一项剁碎:
el@apollo:~/foo$ python
>>> mystring = "theres coffee in that nebula"
>>> mytuple = mystring.partition(" ")
>>> print type(mytuple)
<type 'tuple'>
>>> print mytuple
('theres', ' ', 'coffee in that nebula')
>>> print mytuple[0]
theres
>>> print mytuple[2]
coffee in that nebula
partition
字符串的方法,然后更新您的问题。