为什么在 "variable_names" returns 多个结果时 index 的值总是零?

Why is the value of index always zero when "variable_names" returns multiple results?

我想计算每个正则表达式搜索文件的结果。我相信我正在填充一个列表,然后循环尝试获取计数器的值。

for file in XDTS:
    data_tag_regex = re.compile(r'data_tag=\"(.*?)\"')
    if file.endswith('.xdt'):
        xdt_file = open(file, 'r')
        for line in xdt_file:
            variable_names = data_tag_regex.findall(line)
            for index, variable_name in enumerate(variable_names):
                print(index)

你有一个匹配项每行,还有多行匹配项。您的 enumerate() 调用每次都从 0 开始,因为它是每个新行的 新调用

for line in xdt_file:
    # per line, find matches
    variable_names = data_tag_regex.findall(line)
    # for *this line only* print the indices, counting from 0
    for index, variable_name in enumerate(variable_names):
        print(index)

如果您想在所有行中为每个匹配保留一个索引,您需要独立计算:

index = 0
for line in xdt_file:
    variable_names = data_tag_regex.findall(line)
    for variable_name in variable_names:
        index += 1
        print(index)