gpt4 book ai didi

python - 正则表达式排除目录,捕获以逗号分隔的文件名,排除 "(number)"和扩展名

转载 作者:行者123 更新时间:2023-11-28 22:39:11 25 4
gpt4 key购买 nike

过去三天(是的)我一直在尝试制作一个图像/短视频标记系统供我自己使用,但事实证明这是一个超出我的挑战。

这些是字符串:

d:\images\tagging 1\GIFs\kung fu panda, fight.webm
d:\images\tagging 1\GIFs\kung fu panda, fight (2).webm
d:\images\tagging 1\GIFs\kung fu panda 2, fight.webm
d:\images\tagging 1\GIFs\kung fu panda 2, fight (2).webm
d:\images\tagging 1\GIFs\pulp fiction, samuel l. jackson, angry, funny.webm

我尝试修改四件事以实现我想要的但没有成功:

(?<=d:\\images\\tagging\s1\\GIFs\\)([\w\s])+

([a-z0-9]\s?)+

(?<=\\)[^\\]*?(?=\..*$)

[^\\/:*?"<>|\r\n]+$

1 差不多了,但没有超过第一个逗号。

2 这几乎可以做所有事情,但我还没有找到排除目录、(#) 和扩展名的方法。

3 取自互联网,捕获“l”。并停在那里,整个文件名,不能按我的意愿使用逗号,捕获 (#)。

4 取自 regexbuddy(是的,我实际上是在绝望中购买的),捕获 (#) 和扩展。

@timgeb

目的是获取不带逗号、(#) 和扩展名的文件名,因此:

"kung fu panda" "fight"
"kung fu panda" "fight"
"kung fu panda 2" "fight"
"kung fu panda 2" "fight"
"pulp fiction" "samuel l. jackson" "angry" "funny"

最佳答案

你的问题不是很清楚,但我认为你想解析文件名。如果是这样的话,我不建议使用 re 作为您的主要工具。

相反,请查看 os.path :

import os.path  # Or `import ntpath` for Windows paths on non-Windows systems

dir, file_name = os.path.split('d:\images\tagging 1\GIFs\kung fu panda, fight (2).webm')
# dir = 'd:\images\tagging 1\GIFs'
# file_name = 'kung fu panda, fight (2).webm'

root, ext = os.path.splitext(file_name)
# root = 'kung fu panda, fight (2)'
# ext = '.webm'

现在你有一个更简单的问题:删除括号中的数字。

关于python - 正则表达式排除目录,捕获以逗号分隔的文件名,排除 "(number)"和扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34978260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com