簡體   English   中英

使用Windows文件夾路徑的Python正則表達式中的原始字符串

[英]Raw string in Python regular expression using Windows folder path

嘗試使用此正則表達式在原始字符串中使用反斜杠:

import re
print re.sub(r'^[a-zA-Z]:\\.+(\\Data.+)', r'D:\folder\1', r'C:\Some\Path\Data\File.txt')

預期產量:

D:\folder\Data\File.txt

然而\\f正在被解釋。 有沒有辦法在不轉換為正斜杠的情況下完成這項工作?

re.sub解釋替換字符串( docs )中的轉義序列。 在\\ f之前添加額外的反斜杠以逃避反斜杠似乎可以解決問題:

import re
print re.sub(r'^[a-zA-Z]:\\.+(\\Data.+)', r'D:\\folder\1', r'C:\Some\Path\Data\File.txt')

如果您的替換字符串是動態的,您可以始終使用另一個正則表達式來轉義反斜杠,或使用str.encode('unicode-escape')。

要避免特殊字符轉換,可以使用lambda函數:

print re.sub(r'^[a-zA-Z]:\\.+(\\Data.+)', lambda x: r'D:\\folder\1', r'C:\Some\Path\Data\File.txt')    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM