我想进行字符串替换,以删除搜索短语中使用的所有特殊和不安全字符,以适合插入 Google URL 的内容。
我可以使用 .replace 或 re.sub 的多个实例,但这似乎效率低下。有没有更快或更Pythonic的方式来做到这一点?我想我最近正在超越初学者并进入中级,因为我所有的尝试都是为了让我的代码更简洁、更高效。
我建议不要自己进行替换,而是使用urllib.quote()
,它通过将特殊字符转换为%xx
转义符来返回 URL 安全字符串。
这里的好处是您可以轻松地从您的 URL 安全版本中获取原始字符串urllib.unquote()
(并且您不需要自己编写代码!)。
另一种选择是使用re.sub
,有关更多详细信息,请参阅正则表达式文档。
举个例子:
# re.sub(pattern, replacement, target_string)
>>> re.sub("@|#|\$", "" , 'asdf@#$asdf')
'asdfasdf'
请注意,您可以指定要替换为空字符串的符号,这意味着您可以添加/删除特殊字符。但是,它确实需要您对正则表达式模式有一些了解。