为什么以下导致错误?
import re
from urllib import quote as q
s = re.compile(r'[^a-zA-Z0-9.: ^*$@!+_?-]')
s.sub(q, "A/B")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/python/python-2.7.1/lib/python2.7/urllib.py", line 1236, in quote
if not s.rstrip(safe):
AttributeError: rstrip
我想在包含正斜杠的字符串上调用sub,不确定为什么会导致此错误。如何修复它以便我可以将带有'/'字符的字符串传递给sub()?
感谢。
答案 0 :(得分:2)
由于re.sub
使用repl
的实例调用re.match
参数。
我想你想用:
s.sub(lambda m: q(m.group()), "A/B")
但是,更简单的方法是使用safe
的{{1}}参数:
urllib.quote