In Java, I could use the following function to check if a string is a valid regex (source):
boolean isRegex; try { Pattern.compile(input); isRegex = true; } catch (PatternSyntaxException e) { isRegex = false; }
Is there a Python equivalent of the Pattern.compile()
and PatternSyntaxException
? If so, what is it?
Advertisement
Answer
Similar to Java. Use re.error
exception:
import re try: re.compile('[') is_valid = True except re.error: is_valid = False
exception
re.error
Exception raised when a string passed to one of the functions here is not a valid regular expression (for example, it might contain unmatched parentheses) or when some other error occurs during compilation or matching. It is never an error if a string contains no match for a pattern.