Regex模式从路径提取文件名?



我试图从这样的文件路径创建一个零件编号的正则表达式模式

\D6-DCUsers$nameProfileDesktopNew folderXXX-XX-XX-XXX OP1 RAN.NC

其中XXX-XX-XX-XXX是我想提取的字符串,OP后的数字有时会改变,并且RAN可能并不总是存在。文件位置也会改变。

任何帮助都将不胜感激

我不太擅长正则表达式,昨天花了将近2个小时试图弄清楚这个。我得到的最接近的是(?:.(?!\))+$,它捕获了路径的末端,但是我不能为我的生命弄清楚如何将其缩小到仅输出特定字符串。

如果您的目标是提取"XXX-XX-XX-XXX"它有这种特殊的结构。首先,你可以把弦分开。然后,在最后一部分中,您可以提取前13个字符。下面的代码片段可以做到这一点。

a = r"""\D6-DCUsersnameProfileDesktopNew folderXXX-XX-XX-XXX OP1 RAN.NC"""
a.split('\')[-1][0:13]

您需要一个regexp来捕获最后一个文件夹字符""以及该位置后的第一个空格

  1. 匹配所有字符,直到最后一个文件夹字符(你必须双击来转义它):.*\
  2. 然后捕获所有不是空格的内容:([^ ]+)

全答:

.*\([^ ]+)

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

终于自己解决了;不确定这有多有效,但它对我有效,所以:

^\(.+\)*(.+)s*(?:OPd)s*(?:.*).(.+)$

最新更新