Python 发表于 2016-7-11 00:37:39

用 python 2.7.8 字符串方法split() rsplit()代替 strip() rstrip()的好处

用 python 2.7.8 字符串方法split() rsplit()代替 strip() rstrip()的好处

str.lstrip()
返回移除前导字符的字符串副本。
chars 是为移除字符集而指定的字符串。若省略或为 None,则 chars 默认为移除空白。chars 不是前缀;一定程度上,会剥离其值的所有组合:   
>>> '   spacious   '.lstrip()
'spacious   '
>>> 'www.example.com'.lstrip('cmowz.')
'example.com'
批处理式 "数字 Python IDE" 集成开发环境 (集成高效 Cython PyInstaller 批处理小程序)
http://dt.digitser.cn/zh-CN/ide/idepy/index.html

str.rstrip()
返回移除结尾字符的字符串副本。

chars 是为移除字符集,而指定的字符串。若省略或为 None,则 chars 默认为移除空白。chars 不是后缀;一定程度上,会剥离其值的所有结尾组合:
>>> '   spacious   '.rstrip()
'   spacious'
>>> 'mississippi'.rstrip('ipz')
'mississ'
str.split(])
返回用 sep 作为定界字符串的字符串单词列表。若给定 maxsplit,最多拆分 maxsplit 次 (因此,列表最多具有 maxsplit+1 元素)。若 maxsplit 不指定或为 -1,那么,会不限拆分次数 (产生所有可能拆分)。
若给定 sep,就不会把连续定界符分组到一起,且会认为是在定界空字符串;譬如:'1,,2'.split(',') 会返回 ['1', '', '2']。sep 可由多个字符组成;譬如:'1<>2<>3'.split('<>') 会返回 ['1', '2', '3']。以指定分隔符,拆分空字符串会返回 ['']。
若 sep 不指定或为 None,则会应用不同拆分算法;譬如:会把连续运行空白看成单分隔符,因此,结果的开头和结尾不会包含空字符串,若字符串开头或结尾有空白的话。因此,以 None 分隔符拆分空字符串或仅由空白组成的字符串会返回 []。

譬如: ' 12   3'.split() 会返回 ['1', '2', '3'],'12   3'.split(None, 1) 会返回 ['1', '2   3']。
str.rsplit(])
    返回用 sep 作为定界字符串的字符串单词列表。若给定 maxsplit,将最多拆分最右 maxsplit 次。若 sep 不指定或为 None,分隔符则为任意空白字符串。除从右侧拆分外, rsplit() 表现类似 split() 。

综上所述,字符串方法 split() rsplit() 用于拆分字符串,而 strip() rstrip() 用于剥离字符组合。因此,平时要拆分字符串,最好使用 split() rsplit() 字符串方法;否则,会产生意想不到结果。
>>> a = '<loc>http://dts.digitser.cn/en-US.html</loc>'
>>> a.lstrip(u"<loc>").rstrip(u"</loc>")
u'http://dts.digitser.cn/en-US.htm' #不是想要结果,剥离了过多字符组合
>>> a.split(u"<loc>", 1).rsplit(u"</loc>", 1)
u'http://dts.digitser.cn/en-US.html' #想要结果
http://forum.digitser.cn/data/attachment/forum/201605/19/132155fevczeyds5e5y1wy.jpg扫一扫关注 德云社区 微信公众号
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载。
页: [1]
查看完整版本: 用 python 2.7.8 字符串方法split() rsplit()代替 strip() rstrip()的好处