python - wtforms.validators中的Regexp验证函数的flags参数有什么作用?
大家讲道理
大家讲道理 2017-04-17 17:59:08
0
2
747

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

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

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

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

répondre à tous(2)
阿神

Je n'ai jamais utilisé cette bibliothèque, mais je répondrai selon ma propre compréhension de re. Cela devrait encapsuler certaines fonctions régulières

1. Référence https://docs.python.org/2/library/re.html#re.compile
flags : afficher les constantes d'indicateur spécifiques

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. Ce qu'il veut dire, c'est que le type de valeur transmis dans l'expression régulière n'est pas une chaîne, ignorez-le


mise à jour :

Téléchargez la bibliothèque et voyez le code source en un coup d'œil :

site-packages/wtforms/validators.py ligne 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

Déterminez d'abord si l'expression régulière entrante est une chaîne, puis compilez

Ty80

Je ne sais pas pourquoi je ne peux pas modifier la question, je vais donc ajouter ma propre réponse puis synthétiser les réponses adoptées.

Les paramètres
  1. flags sont décrits dans la documentation du module re comme ceci :

Les valeurs peuvent être l'une des variables suivantes, combinées à l'aide d'un OU au niveau du bit (l'opérateur |).

Ces constantes peuvent être utilisées simultanément en utilisant le bit ou l'opérateur . La valeur par défaut est 0, ce qui signifie qu'aucune constante d'indicateur n'est utilisée for example n'a de sens.

  1. Comme indiqué dans le code source, si regex n'est pas une chaîne, alors il n'y a pas d'étape de compilation, et ces paramètres seront naturellement ignorés.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal