2010-10-22 89 views
1

我需要在正则表达式中做一些事情,但我真的不擅长它,很久没有这样做。Python的正则表达式问题

/a/c/a.doc 

我需要将其更改为

\\a\\c\\a.doc 

请试着通过使用Python的正则表达式来做到这一点。

+0

为什么你需要改变它? Python可以很好地用/作为路径分隔符。 – JoshD 2010-10-22 03:34:23

回答

1

你可以不用正则表达式:

x = '/a/c/a.doc' 
x = x.replace('/',r'\\') 

但是,如果你真的想用重:

x = re.sub('/', r'\\', x) 
+3

您可以使用原始字符串来使这个更清洁。 – Swiss 2010-10-22 02:15:14

+0

@瑞士谢谢你的建议 - 我确定了我的答案。 – 2010-10-22 03:32:57

2

你觉得你为什么每个问题的解决方案需要的正则表达式?

>>> s="https://stackoverflow.com/a/c/a.doc" 
>>> '\\'.join(s.split("/")) 
'\\a\\c\\a.doc' 

顺便说一句,如果你要改变路径分隔符,你可能只是以及使用os.path.join

mypath = os.path.join("C:\\","dir","dir1") 

Python会选择正确的斜杠为您服务。此外,如果您有兴趣,请查看os.sep

+0

似乎并不认为原始海报认为每个解决方案都需要正则表达式。 – akonsu 2010-10-22 02:13:37

+2

@akonsu,他以前的帖子几乎都是关于正则表达式的。 – ghostdog74 2010-10-22 02:27:25

5

我完全赞成帮助user483144将“解决方案”与“正则表达式”区分开来,因为前两个回答者已经完成了。这发生在我身上,而且,os.path.normpath()http://docs.python.org/library/os.path.html可能是他的真的之后。

0

\\是指"\\"r"\\"

re.sub(r'/', r'\\', 'a/b/c')

使用时使用正则表达式r'....' ALWAYSE。