跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Python 原始字符串
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= Python原始字符串 = '''原始字符串'''(Raw String)是Python中处理字符串的一种特殊方式,它不会对反斜杠(<code>\</code>)进行转义处理,而是直接按照字面意思解释字符串内容。原始字符串在正则表达式、文件路径和Windows系统路径处理等场景中非常有用。 == 基本概念 == 在普通字符串中,反斜杠(<code>\</code>)用于表示转义字符,例如: * <code>\n</code> 表示换行符 * <code>\t</code> 表示制表符 * <code>\\</code> 表示反斜杠本身 而原始字符串通过在字符串前加前缀<code>r</code>或<code>R</code>来定义,它会忽略所有转义字符,将反斜杠视为普通字符。 === 语法格式 === <pre> r"字符串内容" R"字符串内容" </pre> == 为什么需要原始字符串 == 当处理包含大量反斜杠的字符串时(如正则表达式或Windows文件路径),使用普通字符串会导致可读性差且容易出错。原始字符串可以保持字符串的原始形式,避免双重转义问题。 == 代码示例 == === 基本示例 === <syntaxhighlight lang="python"> # 普通字符串 normal_str = "Hello\nWorld" # \n会被转义为换行符 print(normal_str) # 原始字符串 raw_str = r"Hello\nWorld" # \n会被当作普通字符 print(raw_str) </syntaxhighlight> '''输出:''' <pre> Hello World Hello\nWorld </pre> === 文件路径处理 === <syntaxhighlight lang="python"> # 普通字符串表示Windows路径 path = "C:\\Users\\Name\\Documents\\file.txt" print(path) # 原始字符串表示相同路径 raw_path = r"C:\Users\Name\Documents\file.txt" print(raw_path) </syntaxhighlight> '''输出:''' <pre> C:\Users\Name\Documents\file.txt C:\Users\Name\Documents\file.txt </pre> == 注意事项 == 1. 原始字符串的最后一个字符不能是单个反斜杠(除非转义),因为这会导致语法错误: <syntaxhighlight lang="python"> # 错误示例 # raw_str = r"C:\" # 语法错误 # 正确写法 raw_str = r"C:\" "\\" # 拼接字符串 </syntaxhighlight> 2. 原始字符串可以与其它字符串前缀组合使用: <syntaxhighlight lang="python"> # 原始字节字符串 raw_bytes = rb"raw \x00 bytes" # 原始Unicode字符串 raw_unicode = r"原始字符串" </syntaxhighlight> == 实际应用案例 == === 正则表达式 === 正则表达式中经常包含大量反斜杠,使用原始字符串可以显著提高可读性: <syntaxhighlight lang="python"> import re # 不使用原始字符串 pattern = "\\d+\\.\\d+" # 匹配数字如1.23 # 使用原始字符串 raw_pattern = r"\d+\.\d+" # 更清晰 text = "Price is 12.99 dollars" match = re.search(raw_pattern, text) print(match.group()) # 输出: 12.99 </syntaxhighlight> === Windows系统路径 === 处理Windows文件系统路径时,原始字符串特别有用: <syntaxhighlight lang="python"> import os # 使用原始字符串定义路径 log_dir = r"C:\Logs\Application" # 检查路径是否存在 if not os.path.exists(log_dir): os.makedirs(log_dir) </syntaxhighlight> == 高级用法 == === 多行原始字符串 === 原始字符串也可以用于多行字符串(三重引号): <syntaxhighlight lang="python"> raw_multiline = r"""这是一个多行 原始字符串,\n不会 被转义""" print(raw_multiline) </syntaxhighlight> '''输出:''' <pre> 这是一个多行 原始字符串,\n不会 被转义 </pre> === 字符串拼接 === 原始字符串可以与普通字符串拼接: <syntaxhighlight lang="python"> raw_part = r"C:\Users\" normal_part = "Documents\\file.txt" full_path = raw_part + normal_part print(full_path) # 输出: C:\Users\Documents\file.txt </syntaxhighlight> == 数学表示 == 从形式上看,原始字符串可以表示为: <math> R(s) = \{c \in s | c \neq \text{转义序列}\} </math> 其中<math>s</math>是输入字符串,<math>R(s)</math>是原始字符串处理后的结果。 == 总结 == 原始字符串是Python中处理特殊字符序列的强大工具,特别是在需要保留反斜杠原始含义的场景中。关键点包括: * 使用<code>r</code>或<code>R</code>前缀定义 * 不处理转义序列 * 特别适合正则表达式和文件路径 * 不能以单个反斜杠结尾 通过合理使用原始字符串,可以使代码更清晰、更易维护,避免不必要的转义字符问题。 [[Category:编程语言]] [[Category:Python]] [[Category:Python 字符串]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)