用 python 2.7.8 字符串方法split() rsplit()代替 strip() rstrip()的好处
str.lstrip([chars])
返回移除前导字符的字符串副本。
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])
返回移除结尾字符的字符串副本。
chars 是为移除字符集,而指定的字符串。若省略或为 None,则 chars 默认为移除空白。chars 不是后缀;一定程度上,会剥离其值的所有结尾组合:
- >>> ' spacious '.rstrip()
- ' spacious'
- >>> 'mississippi'.rstrip('ipz')
- 'mississ'
复制代码
str.split([sep[, maxsplit]])
返回用 sep 作为定界字符串的字符串单词列表。若给定 maxsplit,最多拆分 maxsplit 次 (因此,列表最多具有 maxsplit+1 元素)。若 maxsplit 不指定或为 -1,那么,会不限拆分次数 (产生所有可能拆分)。
若给定 sep,就不会把连续定界符分组到一起,且会认为是在定界空字符串;譬如:'1,,2'.split(',') 会返回 ['1', '', '2']。sep 可由多个字符组成;譬如:'1<>2<>3'.split('<>') 会返回 ['1', '2', '3']。以指定分隔符,拆分空字符串会返回 ['']。
若 sep 不指定或为 None,则会应用不同拆分算法;譬如:会把连续运行空白看成单分隔符,因此,结果的开头和结尾不会包含空字符串,若字符串开头或结尾有空白的话。因此,以 None 分隔符拆分空字符串或仅由空白组成的字符串会返回 []。
譬如: ' 1 2 3 '.split() 会返回 ['1', '2', '3'],' 1 2 3 '.split(None, 1) 会返回 ['1', '2 3 ']。
str.rsplit([sep[, maxsplit]])
返回用 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)[1].rsplit(u"</loc>", 1)[0]
- u'http://dts.digitser.cn/en-US.html' #想要结果
复制代码
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载。
|