2011-10-26 16 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

@ダニ:問題はない:) – Tadeck

4

私はスラッシュを追加し、その後

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

、ドットを削除するurl.lstrip(".")をお勧めします。

+0

文字列がドットで終わる可能性がある場合、このソリューションは末尾のドットも削除します。 –

+0

削除する必要がない後続のドットが存在する可能性がある場合は、おそらく 'url.lstrip( '。')'にする必要があります。 –

+0

@MichaelCOconnerタイポを見つけてくれてありがとう。一定。 – ewok

5

することで試してみてください:

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

それはすべてのドットを削除し、文字列のbegginingからスラッシュう - と、我々は、手動でスラッシュを追加します。ドットを取り除くために

1

lstrip('./')と思われる人はいますか?尋ねたとして、ドットやスラッシュの相互のが無視され、複数のスラッシュが保存されるべき一方で、それは、すべてのドットとスラッシュを削除しますので、

OK、lstripは正式に(彼の質問に答えてていない - 私のリテラルの読み取りに応じてポストの)。

そのためには、@ ewokの解決策が必要です。

関連する問題