python - wtforms.validators中的Regexp验证函数的flags参数有什么作用?

 pS看云梦山水Tn 发布于 2022-10-28 09:22

wtforms的文档中是这样解释的:

表示没有看懂,请各位大神指点。主要疑惑在:

  1. for example re.IGNORECASE是什么意思,难道这个参数还等代表re模块中的其它常量?

  2. Ignored if regex is not a string.我觉得regex这个参数只能是string类型吧?还会有其它的情况嘛?

2 个回答
  • 不知道为什么不能修改问题,那么再加一个自己的回答好了,再综合一下采纳的答案。

    1. flags参数在re模块的文档中是这样描述的:

    Values can be any of the following variables, combined using bitwise OR (the | operator).

    这些常量可以使用位或运算符来同时使用,默认值为0,表示不使用任何标志常量,for example也就说的通了。

    1. 正如源码所示,如果regex不是字符串,那么也就没有编译的步骤了,那么这些参数自然会被忽略。

    2022-10-29 12:20 回答
  • 没用过这个库 不过按照自己对re的理解来回答, 这应该是封装了一些正则的功能吧

    1.参考 https://docs.python.org/2/library/re.html#re.compile
    flags:查看具体的flag常量

    re.DEBUG
    re.I
    re.IGNORECASE
    re.L
    re.LOCALE
    re.M
    re.MULTILINE
    re.S
    re.DOTALL
    re.U
    re.UNICODE
    re.X
    re.VERBOSE

    2.他的意思是 regex传入的值类型不是string 忽略掉


    update:

    库下载下来看源码一目了然了:

    site-packages/wtforms/validators.py 264行

    def __init__(self, regex, flags=0, message=None):
        if isinstance(regex, string_types):
            regex = re.compile(regex, flags)
        self.regex = regex
        self.message = message

    先判断传入的regx是不是string,然后compile

    2022-10-29 12:20 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有