【发布时间】:2019-07-28 07:32:35
【问题描述】:
我正在尝试为不重复的文件名设置验证,如果某些文件重复,则应以这种方式编写:
- 文件名.PDF
- FILENAME_1.PDF
- FILENAME_2.PDF
所以我可以做第一个,但其他的怎么能拿?
我之前会得到一个所有文件名文档的列表,所以现在我尝试为每个文档制作一个类似的,但我不知道如何制作正则表达式来获取它。
FILENAME_1.PDF -> REGEX() -> 获取返回 -> 1
更新
如果我的 bbdd 中有这些文件:[filename.pdf, filename_1.pdf, filename_2.pdf]。
当有人上传一些基于该文件的新文件时,我需要,如果存在文件名 2,我的新名称将是 filename_3.pdf。
FILENAME_VERSION.EXTENSION
基于此,我需要获取最后一个文件名的版本。谢谢!
注意:会有更多不同的文件名,例如 FILANEM_FILENAM_VERSION.pdf
谢谢!
【问题讨论】:
-
为什么要用正则表达式?只需使用带有文件名出现的哈希图 -
。不要把简单的任务复杂化。 -
您可以为您的示例添加预期的输出吗? “所以我可以做第一个,但其余的怎么能拿走?”这句话不清楚。您想获取第一个的所有副本,还是只获取第一个并忽略副本?
-
我不能使用 hashmap,只能使用文件名。 @Amongalen
-
我想获取最新版本的副本,用于创建新副本,版本增加。我会更新我的回答。 @vincrichaud
-
_(\d+)\.[^.]+$将提取数字(它捕获文件名中最后一个点之前并跟随下划线的数字,您可以尝试here)。不过,我真的不确定这如何帮助解决您的问题。