将反斜杠添加到字符串而不在 Python 中转义

在 Python 中向字符串添加反斜杠而不进行转义

Add backslashes to a string without escaping in Python

使用原始字符串向字符串添加反斜杠而不转义,例如
r'yes\no\maybe'. 当字符串以 为前缀时r,它会将反斜杠视为文字字符并且不需要转义它们。

主程序
# ✅ add backslashes to string without escaping them my_str = r'yes\no\maybe' print(my_str) # 👉️ yes\no\maybe # --------------------------------------- # ✅ add backslashes to string (str.replace()) my_str = 'yes_no_maybe' result = my_str.replace('_', r'\_') print(result) # 👉️ yes\_no\_maybe # --------------------------------------- # ✅ using variables in a raw, formatted string literal variable = 'maybe' my_str = fr'yes\no\{variable}' print(my_str) # 👉️ yes\no\maybe

第一个示例使用原始字符串将文字反斜杠字符添加到字符串中而不对其进行转义。

带有前缀的r字符串称为原始字符串,并将反斜杠视为文字字符。

如果需要在字符串中的特定字符前添加反斜杠字符,请使用该str.replace()方法。

主程序
my_str = 'yes_no_maybe' result = my_str.replace('_', r'\_') print(result) # 👉️ yes\_no\_maybe

str.replace方法返回字符串
的副本,其中所有出现的子字符串都被提供的替换项替换。

该方法采用以下参数:

姓名 描述
老的 字符串中我们要替换的子串
新的 每次出现的替换old
数数 count替换第一次出现的(可选)

该方法不会更改原始字符串。字符串在 Python 中是不可变的。

如果您需要在原始字符串中使用变量,请使用格式化字符串文字。

主程序
variable = 'maybe' my_str = fr'yes\no\{variable}' print(my_str) # 👉️ yes\no\maybe
格式化字符串文字 (f-strings) 让我们通过在字符串前加上f.

确保将表达式括在大括号 –{expression}中。

请注意,我们在字符串前加上前缀fr而不仅仅是前缀f

如果您需要定义一个无需转义特殊字符的多行字符串,请使用三引号原始字符串。

主程序
my_str = r"""yes \no \maybe""" # yes # \no # \maybe print(my_str)

三引号字符串与我们使用单引号或双引号声明的基本字符串非常相似。

但它们也使我们能够:

  • 在同一个字符串中使用单引号和双引号而不转义
  • 定义多行字符串而不添加换行符

行尾自动包含在三引号字符串中,因此我们不必在末尾添加换行符。