python - 正则表达式: Remove Time-Stamp from File-Name

标签 python regex string python-2.7

我正在浏览一个目录以查找特定的文件名。我可以从每个文件名中删除文档标签 '.xml' 进行比较。问题是大约 10% 的标题末尾有一个六位数的时间戳。

file_list = os.listdir(directory_address)

for entry in file_list:        
        re.sub('\.xml$','', entry).upper()


#file name examples

filename_1 = 'normal_filename'

filename_2= 'another_normal_filename_A23'

filename_3 = 'stamped_file_name_085373'

我的程序不会立刻知道哪些文件有时间戳。有些文件(缺少时间戳)自然也会以一两个数字结尾。据我所知,只有标记的文件名才会以这种格式 _###### 结尾。

如何使用正则表达式来识别末尾附加六位数字的文件名_######并从字符串中删除这些数字以进行比较?

最佳答案

您可以使用 \d{6}$ 模式精确匹配文件名末尾的 6 位数字,并使用 re.sub() 删除它们。 :

>>> import re
>>> filename = 'stamped_file_name_085373'
>>> filename = re.sub(r"_\d{6}$", "", filename)
>>> filename
'stamped_file_name'

关于python - 正则表达式: Remove Time-Stamp from File-Name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36583329/

相关文章:

python - 如何在Python中实际使用NotImplementedError?

python - 在 OpenERP 的薪资部分中扣除休假

c# - 修剪 url 字符串。 C#

regex - 从文本行获取 bash 中的所有变量

javascript - 在javascript中抓取和显示xml格式的字符串

Python-用下划线替换所有空格并将目录中所有文件转换为小写

python - 使用查找数据框替换数据框中的值

php - PHP 中的奇怪字符串

c# - C#中匹配字符串

php - 删除由冒号分隔的字符串的最后一部分