首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python正则表达式将双反斜杠替换为单反斜杠

Python正则表达式将双反斜杠替换为单反斜杠
EN

Stack Overflow用户
提问于 2013-05-21 23:39:31
回答 4查看 24.5K关注 0票数 9

我正在尝试将所有双反斜杠替换为只有一个反斜杠。我想用'class=\"highlight'替换'class=\\"highlight'。我认为python将'\\'视为一个反斜杠,将r'\\+'视为包含两个反斜杠的字符串。但当我尝试的时候

代码语言:javascript
复制
In [5]: re.sub(r'\\+', '\\', string)
sre_constants.error: bogus escape (end of line)

因此,我尝试将替换字符串替换为原始字符串:

代码语言:javascript
复制
In [6]: re.sub(r'\\+', r'\\', string)
Out [6]: 'class=\\"highlight'

这不是我想要的。因此,我在原始字符串中只尝试了一个反斜杠:

代码语言:javascript
复制
In [7]: re.sub(r'\\+', r'\', string)
SyntaxError: EOL while scanning string literal    
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-21 23:42:47

为什么不使用string.replace()

代码语言:javascript
复制
>>> s = 'some \\\\ doubles'
>>> print s
some \\ doubles
>>> print s.replace('\\\\', '\\')
some \ doubles

或者使用"raw“字符串:

代码语言:javascript
复制
>>> s = r'some \\ doubles'
>>> print s
some \\ doubles
>>> print s.replace('\\\\', '\\')
some \ doubles

因为转义字符很复杂,所以您仍然需要对它进行转义,这样它才不会转义'

票数 14
EN

Stack Overflow用户

发布于 2013-05-21 23:50:54

字符串中只有一个反斜杠:

代码语言:javascript
复制
>>> string = 'class=\\"highlight' 
>>> print string
class=\"highlight

现在让我们把另一个放进去

代码语言:javascript
复制
>>> string = 'class=\\\\"highlight' 
>>> print string
class=\\"highlight

然后再将其删除

代码语言:javascript
复制
>>> print re.sub('\\\\\\\\', r'\\', string)
class=\"highlight
票数 2
EN

Stack Overflow用户

发布于 2021-08-03 08:16:20

只需使用.replace()两次!

我有以下路径:C:\\Users\\XXXXX\\Desktop\\PMI APP GIT\\pmi-app\\niton x5 test data

要将\转换为单反斜杠,我只需执行以下操作:

代码语言:javascript
复制
path_to_file = path_to_file.replace('\\','*')
path_to_file = path_to_file.replace('**', '\\')

第一个操作为每个\创建**,第二个操作转义第一个斜杠,将**替换为一个\

结果:

代码语言:javascript
复制
C:**Users**z0044wmy**Desktop**PMI APP GIT**pmi-app**GENERATED_REPORTS
C:\Users\z0044wmy\Desktop\PMI APP GIT\pmi-app\GENERATED_REPORTS
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16673994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档