优雅的字符串方法(如何更多Pythonic)

时间:2012-06-15 20:02:35

标签: python regex string

我想进行字符串替换,将搜索词组中使用的所有特殊和不安全字符移除到适合插入Google网址的内容。

我可以使用.replace或re.sub的多个实例,但这似乎效率低下。有没有更快或更Pythonic的方式这样做?我想我最近已经超越初学者并进入中级,因为我试图使我的代码更清洁,更有效率。

3 个答案:

答案 0 :(得分:7)

我建议您使用urllib.quote()而不是自行替换,它会通过将特殊字符转换为%xx转义来返回URL安全字符串。

这样做的好处是,您可以使用urllib.unquote()从URL安全版本轻松获取原始字符串(并且您不需要自己编写代码!)。

答案 1 :(得分:1)

另一种选择是string.translate

e.g。

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

答案 2 :(得分:0)

另一种选择是使用re.sub,有关详细信息,请参阅regex documentation

举个例子:

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

请注意,您可以使用空字符串指定要替换的符号,这意味着您可以添加/删除特殊字符。但它确实需要你对正则表达式有一些了解。