当前位置:  开发笔记 > 编程语言 > 正文

Python argparse正则表达式

如何解决《Pythonargparse正则表达式》经验,为你挑选了1个好方法。

是否可以使用正则表达式来解析参数?例如,我想接受一个参数,如果它只是一个32长度十六进制(即匹配/[a-f0-9A-F]{32}/)

我试过了

p.add_argument('hex', type=str, nargs="[a-f0-9A-F]{32}")

没有成功



1> wim..:

这就是typekwarg用于:它可以采用任何可调用的单个字符串参数并返回转换后的值.

import argparse
import re 
from uuid import uuid4

def my_regex_type(arg_value, pat=re.compile(r"^[a-f0-9A-F]{32}$")):
    if not pat.match(arg_value):
        raise argparse.ArgumentTypeError
    return arg_value

parser = argparse.ArgumentParser()
parser.add_argument('hex', type=my_regex_type)

args = parser.parse_args([uuid4().hex])

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有