搜索

首页  >  问答  >  正文

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

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

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

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

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

大家讲道理大家讲道理2893 天前755

全部回复(2)我来回复

  • 阿神

    阿神2017-04-17 18:01:08

    没用过这个库 不过按照自己对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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-17 18:01:08

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

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

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

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

    1. 正如源码所示,如果regex

    Values can be any of the following variables, combined using bitwise OR (the | operator).🎜 🎜这些常量可以使用位或运算符来同时使用,默认值为0,表示不使用任何标志常量,for example也就说的通了。🎜 🎜🎜🎜正如源码所示,如果regex不是字符串,那么也就没有编译的步骤了,那么这些参数自然会被忽略。🎜🎜🎜

    回复
    0
  • 取消回复