2010-10-22 92 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。