2013-02-21 58 views
4

我正在开发一个Web应用程序。动态转义字符串中的%符号和括号{}

我需要逃避%{ },如果存在,使用无论是.format()%s

我试过urllib quote_plusre.escape()但没有工作进一步字符串替换。

我需要转义的字符串不是静态的。

我该如何解决这个问题?

谢谢。

回答

3

对于使用与%

s = s.replace('%', '%%') 

对于使用与format

s = s.replace('{', '{{').replace('}', '}}') 
0

为了逃避%{}。你可以用re.sub方法做到这一点。为了逃避string.format

re.sub(r'({|})', '\g<1>\g<1>', original) 

逃避string % args

re.sub(r'(%)', '\g<1>\g<1>', original) 
+0

或者使用字符串替换方法,请参阅eumiro的答案。 – 2013-02-21 10:09:37