从fi标题中提取变长数的算法

2024-04-20 10:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个400000文件名(列在excel中)的格式列表

xxx.Number.Date.zzz.txt

我想从字符串中提取数字

通常我会把它设置为字符串中的第5到第9个字符,但是数字的长度不同(2-4位),我不知道如何设计一个算法来判断数字的长度。你知道吗

如果有人感兴趣,可以使用python3,但实际上我只需要伪代码方面的帮助

我看了前面的问题,但它并没有真正回答我可以使用的问题,因为它似乎在使用bash函数,或者我不理解解释:

Extract number of variable length from string


Tags: 字符串txt算法number列表date文件名格式
2条回答

可以使用正则表达式(在大多数语言中可用):

.*?\.(\d+)\.

匹配前两个点之间的数字:

import re
re.match('.*?\.(\d+)\.', 'xxx.12345.Date.zzz.txt').group(1)
#'12345'

^{}的解释。你知道吗


这也可以在纯Python中完成(很容易翻译成其他语言):

s = 'xxx.12345.Date.zzz.txt'
out = ''
in_num = False
for c in s:
    if in_num:
        if c == '.':
            break
        out += c
    elif c == '.':
        in_num = True

给予out作为:'12345'。你知道吗

注意,对于第二种方法,我们不验证第一个句号之间的字符是否为数字。

如果文件的格式总是xxx.Number.Date.zzz.txt,而我们只关心Number,那么您可以将字符串转换为列表,然后提取该列表的第一个元素。示例:

file = "xxx.4432.Date.zzz.txt"
num = file.split(".")[1]
print(num) # prints 4432

你可以把它写在一个循环中,遍历你的Excel列(如果你还没有签出openpyxl)。你知道吗

相关问题 更多 >