2012-02-26 53 views
3

我是Python新手,在完成這一個腳本之後,我可能根本無法使用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

的〔蟒手冊](https://docs.python.org/2/library/string.html#string-functions)表示與string.replace已棄用。有沒有不贊成的做法呢? – 2015-02-11 00:22:18

+0

@ChrisDodd'string.replace'已棄用。也就是說,模塊'string'中的函數'replace'。 「str」對象的內置方法'replace'是一個不同的函數,不會被棄用。 – orlp 2015-02-11 19:37:29

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?' 

字符串分割:(使用「:」將字符串拆分爲兩部分)

>>> string = "Nima Python: how are you?" 
>>> string.split(":")[1].strip() 
'how are you?' 
+0

以及你如何獲得數字'13'? – neizod 2012-02-26 22:35:10

+0

剛剛計算出字符串中「how」的開始位置。我不同意,不是一個聰明的方法。 – varunl 2012-02-26 22:38:48

+0

@neizod:試試'Spring split'解決方案。它更通用。 – RanRag 2012-02-26 22:40:58

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 =「尼瑪Python:不太好每個人似乎都忘記了'Nima Python'或':'可能會出現在右邊的子字符串,但沒關係,split和replace都帶有一個參數,時間分割/替換「。 – DSM 2012-02-26 22:48:56

+0

這就是你使用'partition()'的原因。 – kindall 2012-02-27 02:04:28

+0

@DSM:你是對的。我應該使用_maxsplit_。 – rsaw 2012-02-27 03:08:35

3
>>> string = 'Nima Python: how are you?' 
>>> string.split(':')[1].strip() 
'how are you?' 
相關問題