2011-10-26 29 views
2

我有一些以點開頭的字符串,我想刪除它。這是最好的方法。 如果下一個caracter不是「/」則添加它。 我是新的Python,我一直在嘗試做這樣的事情來清除點,但有一個語法錯誤。刪除python中字符串開始處的一些點

while (re.match(r'\.*', url[0]).end()) = 0: 
    url = url[1:] 
  • ..../XXX --->/XXX
  • .XXX --->/XXX
  • ..ab --->/AB
  • /AB - - >/AB
  • CA --->/CA

這就是我想要做的事。感謝你們!!

+0

也許語法錯誤是你使用'='而不是'=='進行比較? – Toomai

+0

刪除字符串左端的點:new = old.lstrip(「。」)應該有效。 – Gerry

回答

10

爲了擺脫點:

mystr = '...../your_string' 
mystr = '/' + mystr.lstrip('./') 

,其結果應該是:

/your_string

不管它是否與點或斜線開始(他們都將被替換爲單斜槓)。

+0

謝謝!真的更好地感謝我的選擇:) – dani

+0

@dani:沒問題:) – Tadeck

4

我會建議url.lstrip(".")刪除的點,然後

if not url[0] == '/': 
    url="/"+url 

添加斜線。

+0

如果字符串可以以點結尾,則此解決方案也將刪除尾部點。 –

+0

如果有可能存在無法刪除的尾隨點,那麼這可能應該是'url.lstrip('。')'。 –

+0

@MichaelCOconner感謝您發現錯字。固定。 – ewok

5

嘗試:

badUrl = "..../xxx" 
url = "/" + badUrl.lstrip("./") 

它會刪除所有的點,並從字符串的beggining斜槓 - 然後我們手動添加斜線。

1

有沒有人考慮過使用lstrip('./')

OK,lstrip正式回答他的問題是問(因爲它會刪除所有點和斜槓,而點和斜線的intermixtures應該被忽略和多個斜線應該被保留 - 根據我的字面理解的職位)。

爲此,您必須使用@ ewok的解決方案。

相關問題