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

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

# ✅ 将反斜杠添加到字符串而不转义它们
my_str = r'yes\no\maybe'
print(my_str)  # 👉️ yes\no\maybe

# ---------------------------------------

# ✅ 向字符串添加反斜杠 (str.replace())

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

# ---------------------------------------

# ✅ 在原始格式化字符串文字中使用变量

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 字符串中我们要替换的子串
  • new 替换每次出现的 old
  • count 仅替换第一个 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)

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

但它们也使我们能够:

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

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