我试图从文件路径和名称中隔离(提取)一个部分。我遇到的问题是当文件名的某一部分重复时它无法正常工作。
文件路径/名称可以是以下之一:
/Make/Model/Year/image.jpg
或
/Make/Model/Model-Year/image.jpg
我正在尝试提取
Year
为了使事情变得更加困难,年份的格式为2015年和2月15日。
我尝试了以下
/(?<=Model\/).+?(?=\/)/g
但这适用于/Make/Model/Year/image.jpg
,但不适用于/Make/Model/Model-Year/image.jpg
,而是选择Model-Year
。
任何帮助总是受到赞赏。
答案 0 :(得分:3)
您可以在正常表达式中Model-
之后匹配可选Model/
,并将其重置为\K
。这将模拟可变长度的后视:
Model\/(?:Model-)?\K.+?(?=\/)