2012-02-26 16 views
3

私はPythonには新しく、この1つのスクリプトの後ではおそらくPythonではまったく動作しません。私はScrapyを使用していくつかのデータを抽出していますし、いくつかの文字列をフィルタリングする必要があります(私は既にisdigit()を使って数字を使っています)。グーグルでは、特別な文字列を除外するページを私に提供していますが、私が望むのは実際には大きな文字列のほんの一部です。大きな文字列で特定の文字列をフィルタリングしますか?

これは文字列です:

Nima Python: how are you? 

私は左欲しい:

how are you? 

ので、この部分が削除さ:事前にみんなで

Nima Python: 

感謝を。

答えて

3

これは動作します:

>>> s = "Nima Python: how are you?" 
>>> s.replace("Nima Python: ", "") # replace with empty string to remove 
'how are you?' 
+0

[Pythonのマニュアルは(https://docs.python.org/2/library/string.html#string-functions)string.replaceは廃止されていると言います。これを行う非推奨の方法はありますか? –

+0

@ChrisDodd 'string.replace'は非推奨です。つまり、関数 'replace'はモジュール' string'にあります。組み込みの 'str'オブジェクトの' replace'メソッドは別の関数であり、推奨されていません。 – orlp

2

文字列のスライシング:(これが最も簡単な方法ですが、非常に柔軟ではありません)

>>> string = "Nima Python: how are you?" 
>>> string 
'Nima Python: how are you?' 
>>> string[13:] # Used 13 because we want the string from the 13th character 
'how are you?' 

文字列を置換:

>>> string = "Nima Python: how are you?" 
>>> string.replace("Nima Python: ", "") 
'how are you?' 

文字列分割を:( ":"を使用して文字列を2つの部分に分割する)

+0

と、数字「13」はどうやって取得できますか? – neizod

+0

文字列の "how"の開始位置を数えるだけです。巧妙な方法ではない、私は同意する。 – varunl

+0

@neizod: 'Spring split'を試してみてください。それはより一般的です。 – RanRag

5

私はこのような他の文字列があると仮定しているので、私はstr.split()が良い賭けかもしれないと推測しています。

>>> string = "Nima Python: how are you (ie: what's wrong)?" 
>>> string.split(': ') 
['Nima Python', 'how are you (ie', " what's wrong)?"] 
>>> string.split(': ', 1)[1] 
"how are you (ie: what's wrong)?" 
+0

string = "Nima Python:そうではありません。" Nima Python: "や": "は右の部分文字列として出現するかもしれませんが、大丈夫です。分割/交換する時間。 – DSM

+0

これは 'partition()'を使う理由です。 – kindall

+0

@DSM:あなたは絶対に正しいです。私は_maxsplit_を使っていたはずです。 – rsaw

3
>>> string = 'Nima Python: how are you?' 
>>> string.split(':')[1].strip() 
'how are you?' 
関連する問題