我有以下系列的字符串。我需要只匹配每个中的某个点,在文件扩展名之后省略数字。
folder/file.ext
folder/folder/file.ext
file.ext
file.file.ext
folder/file.ext/320
folder/folder/file.ext/320
file.ext/320
file.file.ext/320
folder/file.ext/320/240
folder/folder/file.ext/320/240
file.ext/320/240
file.file.ext/320/240
换句话说,我想将上述内容转换为:
folder/file.ext
folder/folder/file.ext
file.ext
file.file.ext
folder/file.ext
folder/folder/file.ext
file.ext
file.file.ext
folder/file.ext
folder/folder/file.ext
file.ext
file.file.ext
我使用以下表达式来匹配文件夹,文件和扩展名:
[a-zA-Z0-9_/.-]+
但它偶然会匹配文件名后可以添加的/000
或/000/000
。
此表达式越来越接近,但遗漏了.ext
:
(.+?)(\.[^.]*$|$)
如何编写一个选择文件夹,文件和扩展名的表达式,但在扩展名后省略了什么?
答案 0 :(得分:1)
我只是这样做:
^(.+\.[^/]+)
这将匹配路径+文件名+扩展名,并将它们保留在组1中。
仅当扩展后路径中没有点时才有效。