Как проверить, является ли строка допустимым регулярным выражением - python?

В Java я мог бы использовать следующую функцию, чтобы проверить, является ли строка допустимым регулярным выражением: (source: Как проверить, является ли строка регулярным выражением или нет)

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

Существует ли эквивалент python для Pattern.compile() и PatternSyntaxException? Если да, то что это такое?

Ответы

Ответ 1

Аналогично Java. Используйте re.error исключение:

import re

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

исключение re.error

Исключение, возникшее, когда строка, переданная в одну из функций здесь, не является допустимым регулярным выражением (например, оно может содержать несогласованные скобки) или когда возникает другая ошибка во время компиляция или сопоставление. Это никогда не является ошибкой, если строка не содержит соответствие шаблону.