2013-01-10 118 views
0

我感興趣的是從python中的字符串中刪除額外的符號。檢查並刪除額外的符號

什麼可以通過更有效和pythonic的方式來做到這一點?有一些語法模塊嗎?

我的第一個想法是找到更多的嵌套文本,並通過左側和右側計算開始和結束符號。然後我刪除包含太多符號的符號計數器的最後一個。

一個例子是此字符串

text = "(This (is an example)" 

你可以清楚地看到,第一個括號不被另一個平衡。所以我想刪除它。

text = "This (is and example)" 

該解決方案必須獨立於括號的位置。

其他例子是:

text = "(This (is another example))) (to) explain) the question" 

這將成爲:

text = "(This (is another example)) (to) explain the question" 
+3

你能舉幾個例子說說你在說什麼嗎? –

+0

也許結帳[string docs](http://docs.python.org/2/library/stdtypes.html#string-methods) – danodonovan

+0

Ashwini Chaudhary是對的,我們需要更多信息。但是,從給出的信息來看,我的第一個想法是正則表達式。看看re.sub(...)。 –

回答

0

只好打入格式化的回答這個問題。檢查Python's regular expression module.

如果我明白你在問什麼,看看re.sub。您可以使用正則表達式來查找要刪除的字符,並用空字符串替換它們。

假設我們要刪除'。','&'和'*'的所有實例。

>>> import re 
>>> s = "abc&def.ghi**jkl&" 
>>> re.sub('[\.\&\*]', '', s) 
'abcdefghijkl' 

如果要匹配的圖案是較大的,則可以使用re.compile並傳遞作爲第一個參數,以子。

>>> r = re.compile('[\.\&\*]') 
>>> re.sub(r, '', s) 
'abcdefghijkl' 

希望這會有所幫助。