How to escape special characters of a string with single backslashes


I'm trying to escape the characters -]\^$*. each with a single backslash \.

For example the string: ^stack.*/overflo\w$arr=1 will become:


What's the most efficient way to do that in Python?

re.escape double escapes which isn't what I want:


I need this to escape for something else (nginx).

This question is tagged with python nginx escaping

~ Asked on 2013-09-21 17:55:26

The Best Answer is


This is one way to do it (in Python 3.x):

escaped = a_string.translate(str.maketrans({"-":  r"\-",
                                          "]":  r"\]",
                                          "\\": r"\\",
                                          "^":  r"\^",
                                          "$":  r"\$",
                                          "*":  r"\*",
                                          ".":  r"\."}))

For reference, for escaping strings to use in regex:

import re
escaped = re.escape(a_string)

~ Answered on 2013-09-21 17:56:56


Just assuming this is for a regular expression, use re.escape.

~ Answered on 2013-09-21 17:57:03

Most Viewed Questions: