Comment vérifier si une chaîne est une expression rationnelle valide-python?

En Java, je pourrais utiliser la fonction suivante pour vérifier si une chaîne est valide regex: (source:Comment faire pour vérifier si la chaîne est une expression régulière ou non)

boolean isRegex;
try {
  Pattern.compile(input);
  isRegex = true;
} catch (PatternSyntaxException e) {
  isRegex = false;
}

Y a-t-il un équivalent python des Pattern.compile() et PatternSyntaxException? Si oui, quel est-il?

22
demandé sur Community 2013-10-28 13:21:50

1 réponses

Similaire à Java. Utilisation re.error exception:

import re

try:
    re.compile('[')
    is_valid = True
except re.error:
    is_valid = False

Exception re.error

Exception levée lorsqu'une chaîne passée à l'une des fonctions ici est pas une expression régulière valide (par exemple, elle peut contenir parenthèses non appariées) ou quand une autre erreur se produit pendant compilation ou correspondance. Ce n'est jamais une erreur si une chaîne ne contient pas match pour un motif.

39
répondu falsetru 2013-10-28 09:24:55