1

我想进行字符串替换,以删除搜索短语中使用的所有特殊和不安全字符,以适合插入 Google URL 的内容。

我可以使用 .replace 或 re.sub 的多个实例,但这似乎效率低下。有没有更快或更Pythonic的方式来做到这一点?我想我最近正在超越初学者并进入中级,因为我所有的尝试都是为了让我的代码更简洁、更高效。

4

3 回答 3

7

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

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

于 2012-06-15T20:14:58.087 回答
1

一种选择是string.translate

例如

>>> string.translate('ds..ad$ds#a', None, '.,@#$')
'dsaddsa'
于 2012-06-15T20:10:08.347 回答
0

另一种选择是使用re.sub,有关更多详细信息,请参阅正则表达式文档

举个例子:

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

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

于 2012-06-15T21:37:06.107 回答