[英]Escape characters and raw string
我想将">"
替换为">"
。 与其他符号相同。
def escape_html(s):
s = s.replace(">", r">")
s = s.replace("<", "<")
s = s.replace('"', """)
s = s.replace('&', "&")
return s
print escape_html(">")
结果是&gt;
但我需要>
您能帮助我理解为什么原始字符串不能帮助我。 我应该如何编写代码?
您需要替换&
第一 :
def escape_html(s):
s = s.replace('&', "&")
s = s.replace(">", ">")
s = s.replace("<", "<")
s = s.replace('"', """)
return s
因为否则,您将在其他所有替换项中替换&
。 这与Python原始字符串文字无关。 仅禁用\\
-样式转义。
您也可以只使用cgi.escape()
函数 ; 将第二个参数设置为True
以使其转义引号。
演示:
>>> def escape_html(s):
... s = s.replace('&', "&")
... s = s.replace(">", ">")
... s = s.replace("<", "<")
... s = s.replace('"', """)
... return s
...
>>> escape_html('<script>alert("Oops & bummer!")</script>')
'<script>alert("Oops & bummer!")</script>'
>>> import cgi
>>> cgi.escape('<script>alert("Oops & bummer!")</script>', True)
'<script>alert("Oops & bummer!")</script>'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.