如何使用单个反斜杠转义字符串的特殊字符

新手上路,请多包涵

我试图转义字符 -]\^$*. 每个都有一个反斜杠 \

例如字符串: ^stack.*/overflo\w$arr=1 将变为:

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

在 Python 中最有效的方法是什么?

re.escape 双重转义,这不是我想要的:

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

我需要这个来逃避别的东西(nginx)。

原文由 Tom 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 444
2 个回答

这是一种方法(在 Python 3.x 中):

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

作为参考,用于转义字符串以在正则表达式中使用:

 import re
escaped = re.escape(a_string)

原文由 rlms 发布,翻译遵循 CC BY-SA 3.0 许可协议

假设 这是一个正则表达式,使用 re.escape

原文由 Ry- 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题