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