You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何批量将字符串转义序列转换为对应实际字符?

在Python中解析字符串中的转义序列

如果你需要将包含转义序列文本表示的字符串(比如r"\t Hello World!\n")转换成实际对应字符的字符串,不用逐个手动替换,有几种通用方法可以一次性处理所有标准转义字符:

方法1:使用str.encode() + decode('unicode_escape')

这是最简单的方法之一,自动处理所有Python支持的Unicode转义序列:

pattern = r"\t Hello World!\n"
new_pattern = pattern.encode().decode('unicode_escape')
# 验证结果
print(repr(new_pattern))  # 输出: '\t Hello World!\n'

该方法会解析所有标准转义序列,包括\t(制表符)、\n(换行)、\r(回车)、\b(退格)、\xhh(十六进制字符)、\uXXXX(Unicode字符)等。

方法2:使用ast.literal_eval

ast.literal_eval可以安全地解析Python字符串字面量,适合处理严格符合Python语法的字符串:

import ast

pattern = r"\t Hello World!\n"
# 注意需要用引号包裹原字符串,因为要解析为合法的Python字符串字面量
new_pattern = ast.literal_eval(f'"{pattern}"')
print(repr(new_pattern))  # 输出: '\t Hello World!\n'

如果原字符串中包含双引号,建议改用单引号包裹:

# 示例:原字符串含双引号
pattern = r'\t "Hello World!"\n'
new_pattern = ast.literal_eval(f"'{pattern}'")

这种方法的优势是严格遵循Python的字符串解析规则,遇到非法转义序列会直接报错,安全性更高。

方法3:使用codecs.decode

和方法1原理类似,直接调用codecs模块的解码方法:

import codecs

pattern = r"\t Hello World!\n"
new_pattern = codecs.decode(pattern, 'unicode_escape')
print(repr(new_pattern))  # 输出: '\t Hello World!\n'

效果和方法1一致,适用于需要显式指定解码方式的场景。


内容的提问来源于stack exchange,提问作者Kera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:30:49