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

如何在Python中用正则表达式将'\'替换为'/'?尝试未成功求建议

在Python中替换反斜杠为正斜杠的解决方案

这问题我之前也踩过坑,核心就是反斜杠作为「转义字符」的双重身份搞的鬼!先给你两种靠谱的解决办法,从简单到正则场景都覆盖:


方案1:不用正则,直接用字符串replace()(最省心)

这种场景下字符串自带的替换方法反而更直接,完全没必要绕正则:

  • 如果你的原始字符串是普通写法(非原始字符串),要注意反斜杠本身需要转义,所以替换时要写两个反斜杠:
    original_path = "C:\\Users\\Bob\\Desktop\\note.txt"
    converted_path = original_path.replace("\\", "/")
    print(converted_path)  # 输出: C:/Users/Bob/Desktop/note.txt
    
  • 如果用原始字符串(前面加r),写法更直观,不用转义反斜杠:
    original_path = r"C:\Users\Bob\Desktop\note.txt"
    converted_path = original_path.replace(r"\", "/")
    print(converted_path)  # 同样得到正确结果
    

方案2:用正则表达式处理(适合复杂匹配场景)

如果你确实需要结合正则做其他操作,那必须处理好「双重转义」:
因为Python字符串会先转义一次,正则引擎又会再转义一次,所以要表示一个实际的反斜杠,有两种写法:

import re

original_path = r"C:\Users\Bob\Desktop\note.txt"
# 方法1:用原始字符串定义正则模式(推荐,可读性高)
converted_path = re.sub(r"\\", "/", original_path)
# 方法2:不用原始字符串,需要写四重反斜杠
converted_path = re.sub("\\\\", "/", original_path)
print(converted_path)  # 两种方法结果一致

为什么你之前可能失败?

最常见的两个坑:

  • 直接写re.sub("\", "/", original_path):Python会报错,因为单个反斜杠是不完整的转义序列;
  • 写re.sub("\\", "/", original_path):Python会把\\解析成单个反斜杠传给正则引擎,而正则里单个反斜杠是转义符,后面没有匹配的字符,会抛出正则语法错误。

试试上面的方法,应该就能搞定啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:38:14