regex 正则表达式模式从路径中提取文件名?

hrysbysz  于 2022-12-24  发布在  其他
关注(0)|答案(2)|浏览(166)

我正尝试从文件路径创建一个regex模式来表示部件号,如下所示

\\D6-DC\Users$\name\Profile\Desktop\New folder\XXX-XX-XX-XXX OP1 RAN.NC

这里XXX-XX-XX-XXX是我想提取的字符串,OP后面的数字有时会改变,RAN可能不总是存在,文件位置也会改变。
任何帮助都将不胜感激
我不是很擅长正则表达式,昨天花了将近2个小时来弄明白这个,我得到的最接近的是(?:.(?!\\))+$,它捕捉到了路径的末端,但是我一辈子都想不出如何把这个范围缩小到只输出特定的字符串。

cqoc49vn

cqoc49vn1#

如果你的目标是提取“XXX-XX-XX-XXX”,它有这个特定的结构。首先,你可以分割你的字符串。然后,在最后一部分,你可以提取前13个字符。这里有一个代码片段可以做到这一点。

a = r"""\\D6-DC\Users\name\Profile\Desktop\New folder\XXX-XX-XX-XXX OP1 RAN.NC"""
a.split('\\')[-1][0:13]
k5hmc34c

k5hmc34c2#

您需要一个regexp来捕获最后一个文件夹字符“\”和该位置后的第一个空格之间的字符串。
1.匹配所有字符,直到最后一个文件夹字符(您必须使用两个\来转义它):第一个月
1.然后捕捉所有不是空间的东西:([^\ ]+)
完整答案:

.*\\([^\ ]+)

要查看其实际操作:https://regex101.com/r/VBJmaP/1

相关问题