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

在Python3.x中构建动态正则表达式字符串

  •  1
  • iNoob  · 技术社区  · 3 年前

    我正试图动态地构建一个正则表达式字符串来进行匹配检查。它将使用部分用户输入,我面临的问题是当我构建字符串(使用数字 \d{4} 例如)它最终会有一个额外的 \ 反斜杠,以转义初始值。

    所以 re.match 永远不会奏效。我最初认为这是一个简单的问题,但在谷歌上搜索了很多次并尝试了失败的Arr之后。我一定错过了什么,任何线索或见解都将不胜感激。

    if args['del']:
        delimiter = args['del']
    else:
        delimiter = '/'
    
    if args['start']:
        test = "\d{{2}}{0}\d{{2}}{0}\d{{4}}".format(delimiter) 
        match = re.match(test, args['start'])
        if match:
            sdate = args['start']
            print(sdate)
        else:
            print('Format: dd{}mm{}yyyy'.format(delimiter))
            sys.exit()
    
    0 回复  |  直到 3 年前
        1
  •  1
  •   iNoob    3 年前

    好的,所以这是一个简单的修复,当把我的args定义为输入时。我正在使用设置自定义分隔符 --del 但在我的DOB字符串中不使用相同的分隔符。

    很明显,它不匹配(facepalm)@Grismar建议我没有正确理解这个问题,这让我(以全新的眼光)重新审视了一遍,然后我解决了问题。谢谢