lstrip正在移除一个我不希望它的角色

时间:2014-10-31 01:30:03

标签: python

以下代码:

s = "www.wired.com"
print s
s = s.lstrip('www.')
print s

输出:

www.wired.com
ired.com

注意第二行缺少w。我不确定我理解这种行为。我希望:

www.wired.com
wired.com

编辑:

按照前两个答案,我现在明白了这个行为。我现在的问题是:如何在不触及其余内容的情况下剥离前导www.

3 个答案:

答案 0 :(得分:2)

string.lstrip的参数是一个字符列表:

>>> help(string.lstrip)
Help on function lstrip in module string:

lstrip(s, chars=None)
    lstrip(s [,chars]) -> string

    Return a copy of the string s with leading whitespace removed.
    If chars is given and not None, remove characters in chars instead.

>>>

删除所有这些前导字符。

print s.lstrip('w.')  # does the same!

<强> [编辑]:

如果你想要初始化www.,但只有当它开始时,你可以使用正则表达式或类似的东西:

s = s[4:] if s.startswith('www.') else s

答案 1 :(得分:1)

根据文件:

  

chars参数是一个字符串,指定要删除的字符的 set ... chars参数不是前缀;相反,它的所有值组合都被剥离了

只需说:

即可达到相同的效果
  

'www.wired.com'.lstrip(' 瓦特')

如果你想要更通用的东西,我会做这样的事情:

i = find(s, 'www.')
if i >= 0:
   s = s[0:i] + s[i+4:]

答案 2 :(得分:1)

删除前导www.

>>> import re
>>> s = "www.wired.com"
>>> re.sub(r'^www\.', '', s)
'wired.com'