代码之家  ›  专栏  ›  技术社区  ›  tgcloud

Python匹配模式以重命名文件[关闭]

  •  -2
  • tgcloud  · 技术社区  · 7 年前

    llm_rc_v3212.xml, llm_ds_v3232.xml . _v3212 . 我想匹配这个数字并替换它(理想情况下重命名文件)。

    如何将此模式与正则表达式匹配?我正在尝试使用 re.sub ,但还无法计算。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Paco H.    7 年前

    import re
    
    FILENAME_VERSION_REGEX = re.compile(r'_v(\d)+')
    
    
    def rename(filename, replacement):
        full_replacement = r'_v{}'.format(replacement)
        new_filename = FILENAME_VERSION_REGEX.sub(full_replacement, filename)
        return new_filename
    

    使用您提供的文件名进行测试:

    >>> rename('llm_rc_v3212.xml', 1)
    'llm_rc_v1.xml'
    
    >>> rename('llm_ds_v3232.xml', 2)
    'llm_ds_v2.xml'
    
    >>> rename('llm_v232_uc.xml', 3)
    'llm_v3_uc.xml'