0
我有一個文件路徑的列表,文件名包含我需要檢索的東西。 C:\PATH\PATH\PATH\PATH\THE_THING_I_NEED.xslx
Python的正則表達式錯誤
使用Pythex我創建了正則表達式,它會精確地選擇我想要的。這是\
和.xslx
之間的所有內容。下面是代碼和錯誤,我得到:
import re
files = ['C:\\PATH\\PATH\\PATH\\thing1.xlsx', 'C:\\PATH\\PATH\\PATH\\PATH\\thing2.xlsx']
pattern = re.compile('(?<=\\)?[a-zA-Z]+(?=\.xlsx)')
for x in files:
matches =re.findall(pattern, x)
print(matches)
#error i get below
error: missing), unterminated subpattern at position 0
因此,按照錯誤我增加了一個額外)
和它的作品:
pattern = re.compile('(?<=\\))?[a-zA-Z]+(?=\.xlsx)')
# ^added right there
究竟是什麼額外的)
在做什麼? Pythex似乎並不需要它,在我看來,似乎沒有必要
這就是爲什麼建議使用原始字符串文獻在Python中定義正則表達式時 –
你不需要額外的),你需要額外的\\。 –
如果您試圖從文件路徑中提取數據,請考慮使用'os.path'中的函數,該函數完全是爲此目的而存在的。 'os.path.splitext(os.path.split('C:\\ PATH \\ PATH \\ PATH \\ thing1.xlsx')[1])[0]'給你''thing1「'。 – Kevin