Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
448 views
in Technique[技术] by (71.8m points)

python - 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.*/overflow$arr=1 will become:

^stack.*/overflo\w$arr=1

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

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

'\^stack\.\*\/overflow\$arr\=1'

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

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...