2014-10-31 60 views
0

下面的代碼:lstrip正在刪除一個角色,我不會期望它

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

輸出:

www.wired.com 
ired.com 

注意在第二行缺少w。我不確定我是否理解這種行爲。我希望:

www.wired.com 
wired.com 

編輯:

繼前兩個答案,我現在明白了行爲。我的問題是現在:我怎麼捨去開頭的www.而不觸及其餘

回答

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 
+0

+1我現在明白了吧。你將如何去除只有領先的'www'。然後 ? – Juicy 2014-10-31 01:38:33

1

根據文檔:

字符參數是字符串指定字符集合被除去...的字符參數不是前綴;相反,它的值的所有組合被剝離

您將實現由只說了相同的結果: '(W')

www.wired.com'.lstrip'

如果你想要更多的東西一般情況下,我會做這樣的事情:

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

1.您可能想要顯示「find」來自的輸入語句,並且2.這將從字符串中間移除它。 'string.replace'可以更好地替換/刪除任意的事件。 – Gerrat 2014-10-31 01:47:38

1

刪除前導www.

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