2012-06-15 49 views
1

我想做一個字符串替換,刪除搜索短語中使用的所有特殊和不安全字符,以適合插入到Google URL中。優雅的字符串方法(如何更Pythonic)

我可以使用.replace或re.sub的多個實例,但這似乎效率低下。有沒有更快或更Pythonic的方式做到這一點?我認爲我已經超越了初學者和最近的中間階段,因爲我努力讓自己的代碼變得更加清晰和高效。

回答

7

而是自己做了更換,我會建議使用urllib.quote(),它返回通過將特殊字符%xx逃逸網址安全的字符串。

這裏的好處是你可以使用urllib.unquote()(你不需要自己編寫代碼)從URL安全版本中輕鬆獲得原始字符串。

+0

繁榮。你先生,是勝利者。 –

+0

@AndrewAlexander你應該接受他的回答然後:D –

+0

是的,對不起!我現在有了。 –

1

一種替代方案是string.translate

例如,

>>> string.translate('ds..ad$ds#a', None, '.,@#$') 
'dsaddsa' 
0

另一種選擇是使用re.sub,請參閱regex documentation瞭解更多詳情。

舉個例子:

# re.sub(pattern, replacement, target_string) 
>>> re.sub("@|#|\$", "" , '[email protected]#$asdf') 
'asdfasdf' 

注意,你可以指定你想用一個空字符串替換的跡象,這意味着你可以添加/刪除特殊字符。但是它確實需要你有一些正則表達式的知識。

相關問題